我正在尝试创建一个函数来检查值是否为nil,以及是否为其提供默认值.这是我到目前为止:
func appendMessage(message: String?, fixLength: Int){
if let message = message {
} else {
message = DEFAULT_CHAR//this is a default value, error is here
}
messageBody.append(getFixedLengthString(message, fixLength))
}
Run Code Online (Sandbox Code Playgroud)
由于message
参数是常量的明显原因,您得到错误.在else
你内部试图更新message
参数.message
通过the创建的变量if let
也是一个常量,但其范围仅在整个块内if
,而不是else
整个if/else
块之后.因此,message
您尝试在调用中使用的变量getFixedLengthString
是原始message
参数.
最简单的解决方案是使用??
(nil-coalescing)运算符:
func appendMessage(message: String?, fixLength: Int){
messageBody.append(getFixedLengthString(message ?? DEFAULT_CHAR, fixLength))
}
Run Code Online (Sandbox Code Playgroud)
该??
运营商如果不返回左边的值nil
与右边的值,如果左侧nil
.
归档时间: |
|
查看次数: |
982 次 |
最近记录: |