Swift 参数可选和必选的区别

68 篇文章 1 订阅

关于Swift 参数可选和必选的区别
很多小伙伴会遇到这样的问题
在这里插入图片描述
意思就是,你必须给我确定的类型String 不能为空, ‘nil’ cannot be assigned to type ‘String’。

参数

var str001:String
var str002:String?

str001 = nil //这个是报错的是 'nil' cannot be assigned to type 'String'
str002 = nil

str001 = "str001"
str002 = "str002"

方法

let string:String? = nil
//参数 可选
func add(str:String?){
    
}
//参数 必选
func add1(str:String){
    
}

add(str: string)
add1(str: string ?? "") 

add 方法是你给我字符串和空都可以
add1方法是你给我必须是字符串类型

附录:我朋友(panway)的理解

如果你不确定是不是为空,就用??给个默认值

var filePath : String = self.item?.href ?? ""

如果你100%确定self.item有值,那么你可以用!(force unwrap self.item)

var filePath : String = self.item!.href

我一开始好奇为什么filePath不能为空,OC时代为空代码可以继续啊,结果发现filePath可以为空:

var filePath : String? = self.item?.href

这样是可以,但是下面用到 filePath 的时候(比如filePath是某个方法的参数,但是这个方法不需要你这个“可能为空可能不为空”的玩意,人家要100%非空的),所以编译器还是会给你报错,让你处理成非空的值传进去,所以老哥,早晚都要做的事情,还是提前做了吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值