实施此方法的正确方法是什么?最好是一行。
var name: String?
...
let username = "@" + name
注意:username
必须为String?
我不想打开name
进行连接。
修改:如果name
为nil
,则username
也应为nil
。
答案 0 :(得分:11)
您可以使用map
的{{1}}方法:
Optional
如果let username = name.map { "@" + $0 }
为name
,则不执行闭包,结果为nil
。否则,将nil
设置为未包装的名称来评估闭包。
答案 1 :(得分:3)
试试这个:
let username = name.flatMap { "@\($0)" }
答案 2 :(得分:1)
你可以通过几种方式做到这一点。这是一个:
{{1}}
答案 3 :(得分:0)
可能最简单,更易读的选项是使用<script src="https://rawgithub.com/Xotic750/object-walk-x/master/lib/object-walk-x.js"></script>
,但您也可以定义if let
prepend
的方法,与String
相对,然后使用可选链接:
String.append