关于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 = nilstr001 = "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%非空的),所以编译器还是会给你报错,让你处理成非空的值传进去,所以老哥,早晚都要做的事情,还是提前做了吧

Swift 参数可选和必选的区别相关推荐

  1. PowerShell的参数集,可选和必选参数,位置参数,参数值,通用参数之简介

    参数集,即是powershell的语法, 可使用其中的一个参数集,各参数集的参数不能混用,若各参数集有公有参数,运行时只指定一个公有参数时,默认运行第一个含有该参数的参数集.如Get-EventLog ...

  2. python位置参数ppt_argparse模块的位置参数和可选(必选)参数

    argparse是python标准库中提供的用来解析命令行参数的模块,非常强大!在深入学习argparse模块之前,需要先搞清楚命令行位置参数和可选参数的概念. 位置参数 基于位置的参数,参数的出现不 ...

  3. 括号中的可选、必选表示

    []:内的内容意思是:可写可不写 例如:/home下就一个list 文件,使用ls --help中的 Usage: ls [OPTION]- [FILE]- {}:那就必须要在{}内给出的选择里选一个 ...

  4. Python - 在定义函数时,为什么默认参数不能放在必选参数前面?

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 我们尝试直接定义这样的函数,看看Python解释器会 ...

  5. Python 在定义函数时 为什么默认参数不能放在必选参数前面

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 直接定义 ...

  6. python中可选参数是什么意思_【IT专家】python 函数参数(必选参数、默认参数、可选参数、关键字参数)...

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 python 函数参数 ( 必选参数.默认参数.可选参数.关键字参数 ) 2015/09/01 30797 参考: liaoxuefeng/wik ...

  7. python 函数参数(必选参数、默认参数、可选参数、关键字参数)

    参考: http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013747384493 ...

  8. python中可选参数是什么意思_什么是python的必选参数

    函数的必选参数,指的是函数调用的时候必须传入的参数 import math def cal (n): return n * n var = cal(2) print(var) # 4 上面的函数是计算 ...

  9. python3函数参数(必选参数、默认参数、关键字参数、可变参数)

    python3函数参数 形参是参数在函数定义过程中的状态,这个过程中没有赋予实际的数值,实参是参数在函数调用过程中的状态,当参数被赋予实际的数值后,它会由形参转为实参. 必选参数在前,默认参数在后,默 ...

最新文章

  1. 藤摇椅游戏道具制作全流程讲解视频教程
  2. 第二次scrum冲刺
  3. Goland实现Set操作
  4. Spring Boot 配置中的敏感信息如何保护?
  5. 原来你竟然是这样的txt?
  6. 【公共类库】加密解密
  7. jQuery操作DOM元素案例
  8. 作为现代行业才有的程序员为何地位不高?
  9. 红帽和Mirantis宣告结束OpenStack合作
  10. Linux 目录文件处理文件
  11. XSS 跨站脚本攻击 的防御解决方案
  12. Yann LeCun说是时候放弃概率论了,因果关系才是理解世界的基石
  13. 从步履蹒跚到举重若轻,阿里基础架构如何扛住全球最猛的流量洪峰?
  14. android 生物识别_将生物识别提示与cryptoobject一起使用
  15. 汽车电子——常见的英文缩写(更新中)
  16. 中创软件哪个部分是外包_什么是外包| 第2部分
  17. 革命展馆沙盘拍照打卡学习活动制作方案,border-color 属性用于设置四个边框的颜色。
  18. .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别
  19. 很多人投身到元宇宙的怀抱,仅仅只是看到了元宇宙的热度
  20. abaqus子程序vumat安装使用

热门文章

  1. x264命令行参数解释
  2. java 自动识别并解压HDFS压缩文件
  3. 【JAVASCRIPT】正则表达式用于定义
  4. 设计模式学习(全)-七大基本原则-23种设计模式 超两万字总结!
  5. Chrome浏览器查看网页源代码的几种方法
  6. Storm Trident API实践
  7. 最强大的Docker插件 fabric8io/docker-maven-plugin
  8. python 菜鸟学院-Python菜鸟晋级视频课程(上)
  9. c++学习纲要(入门必看!!!学习笔记【建议收藏!!!】)怒肝整理数万字,只求君一赞
  10. 爬虫学习笔记(二)http请求详解