在 Swift 中调用函数时的预期声明
Expected declaration when calling function in Swift
我正在创建一个应用程序,它根据步进器的输入在标签上显示不同颜色的文本字符串。作为其中的一部分,我试图在 swift 中编写一个函数来设置标签的字符串值,以便代码可以多次用于多个标签和步进器。该函数使用一个inout参数和一个可变参数:
func function(var Extra: Int, inout LabelName: String) {
if Extra == 0 {
LabelName = "Black"
}
if Extra == 1 {
LabelName = "Brown"
}
if Extra == 2 {
LabelName = "Red"
}
if Extra == 3 {
LabelName = "Orange"
}
if Extra == 4 {
LabelName = "Yellow"
}
if Extra == 5 {
LabelName = "Green"
}
if Extra == 6 {
LabelName = "Blue"
}
if Extra == 7 {
LabelName = "Violet"
}
if Extra == 8 {
LabelName = "Grey"
}
if Extra == 9 {
LabelName = "White"
}
if Extra == -1 {
LabelName = "Gold"
}
if Extra == -2 {
LabelName = "Silver"
}
}
当我尝试使用
调用函数时
function(ValueLabel1Extra, ValueLabel1String)
我收到一个 Swift 编译器错误,说 'Expected Declaration',根据先验知识和一些研究,这是一个函数没有正确声明的错误。
我不完全确定没有声明什么,但通过反复试验,似乎函数本身就是没有声明的,但只有在我调用它时才声明。即使对代码进行了多次重写和编辑,问题仍然存在。
提前致谢!
你需要
function(ValueLabel1Extra, &ValueLabel1String)
因为它不是正在编辑的函数的局部变量
也考虑这样的switch语句,不是必须的,但一般可以节省space编码。
func function(var Extra: Int, inout LabelName: String) {
switch(Extra){
case 0:
LabelName = "Black"
case 1:
LabelName = "Brown"
case 2:
LabelName = "Red"
case 3:
LabelName = "Orange"
case 4:
LabelName = "Yellow"
case 5:
LabelName = "Green"
case 6:
LabelName = "Blue"
case 7:
LabelName = "Violet"
case 8:
LabelName = "Grey"
case 9:
LabelName = "White"
case -1:
LabelName = "Gold"
case -2:
LabelName = "Silver"
default:
LabelName = "Black"
}
}
var x: String = ""
function(4, &x)
println(x)
我正在创建一个应用程序,它根据步进器的输入在标签上显示不同颜色的文本字符串。作为其中的一部分,我试图在 swift 中编写一个函数来设置标签的字符串值,以便代码可以多次用于多个标签和步进器。该函数使用一个inout参数和一个可变参数:
func function(var Extra: Int, inout LabelName: String) {
if Extra == 0 {
LabelName = "Black"
}
if Extra == 1 {
LabelName = "Brown"
}
if Extra == 2 {
LabelName = "Red"
}
if Extra == 3 {
LabelName = "Orange"
}
if Extra == 4 {
LabelName = "Yellow"
}
if Extra == 5 {
LabelName = "Green"
}
if Extra == 6 {
LabelName = "Blue"
}
if Extra == 7 {
LabelName = "Violet"
}
if Extra == 8 {
LabelName = "Grey"
}
if Extra == 9 {
LabelName = "White"
}
if Extra == -1 {
LabelName = "Gold"
}
if Extra == -2 {
LabelName = "Silver"
}
}
当我尝试使用
调用函数时function(ValueLabel1Extra, ValueLabel1String)
我收到一个 Swift 编译器错误,说 'Expected Declaration',根据先验知识和一些研究,这是一个函数没有正确声明的错误。
我不完全确定没有声明什么,但通过反复试验,似乎函数本身就是没有声明的,但只有在我调用它时才声明。即使对代码进行了多次重写和编辑,问题仍然存在。
提前致谢!
你需要
function(ValueLabel1Extra, &ValueLabel1String)
因为它不是正在编辑的函数的局部变量
也考虑这样的switch语句,不是必须的,但一般可以节省space编码。
func function(var Extra: Int, inout LabelName: String) {
switch(Extra){
case 0:
LabelName = "Black"
case 1:
LabelName = "Brown"
case 2:
LabelName = "Red"
case 3:
LabelName = "Orange"
case 4:
LabelName = "Yellow"
case 5:
LabelName = "Green"
case 6:
LabelName = "Blue"
case 7:
LabelName = "Violet"
case 8:
LabelName = "Grey"
case 9:
LabelName = "White"
case -1:
LabelName = "Gold"
case -2:
LabelName = "Silver"
default:
LabelName = "Black"
}
}
var x: String = ""
function(4, &x)
println(x)