Description-java optionall是什么意思

Swift的基础,操作符,字符串和集合类型 - 推酷
Swift的基础,操作符,字符串和集合类型
这篇文章主要讲解苹果Swift官方指南的第二章前四节的要点内容,如果想看完整的英文文档可以去苹果开发者页面下载。
声明常量let
声明变量var
注释依旧使用&//& &/**/&, 注意这里&/**/&在Swift可以嵌套使用
表达式结尾不再有分号
你可以声明为Int或者UInt,他们本身适应不同平台(64位, 32位),类似于NSInteger,NSUInteger
也可以直接声明为指定字节数的Int,如: Int8, Int32...
Float-pointing
Float,Double类型不是基本数据类型,而是一个Float-Pointing类型的数字,Float有32位,Double则64位表示。
Swift中不再支持隐式转换,这样保证了安全性,所以在运算中也要将相同的类型进行运算。
var i1: UInt8 = 5
var i2: UInt16 = 2_000
var sum = UInt16(i1) + i2
typealias关键字,类似于C系列里的typedef
typealias MyInteger = Int
var mi: MyInteger = 8
与oc不同,Swift的boolean为true,false.类型为Bool
另外if不再支持对0或者非0的判断,只判断Bool或者Optional类型
//会引发编译错误
Swift的元组这个十分灵活且好用的内容,它可以存在和适用于任何地方几乎。
var http404Error = (&error&, 404)
var (statusMessage, statusCode) = http404Error
你可以通过statusMessage或者statusCode直接访问元组中的值,
更简洁的方式,可以是.0 .1来访问,例如
var code = http404Error.1 //404
其实在用playground的时候可以看到右边对元组的显示
该元组以(.0 &
)结构进行存储所以可以直接访问
如果我们只想获取code忽略message可以这样进行访问
var (_ , code) = http404Error
这样就可以不去管message而直接拿到code了
文档中还讲解了一种带描述的初始化方式,如:
let http200Status = (statusCode: 200, description: &ok&)
Optional与if语句
if语句支持对optional类型的判断,例如String的toInt()函数你跟进去会发现它的返回值是Int?
这样我们就可以在if中对其进行判断
let number = &1sdd&
var isIn = false
let convertN = number.toInt()
if convertN {
isIn = true
上面这个例子即使将赋值语句放入if的statement中也成立,
如果number这个str可以转成Int,则isIn为true
nil与OC中的nil为空指针不同,Swift里的nil是一个NilType,
在Optional里,可以隐式的给其赋值为nil
var a: String?
这样a默认为nil
与C中assert,OC中NSAssert用法相似,
assert(statement, message)
statement为true断言方可通过
Swift支持大部分的基本的C运算符
注意的是,支持对float-pointing进行模运算(%)
另外提供了a..b,a...b区间的支持,前者为(a,b), 后者为(a, b]
一元运算符+除了进行数学运算外,也可以对String进行拼接
逻辑运算符仍然主要使用&&&& &||&
&&比||有着更高的优先级
字符串和字符
两个类:String,Character
在Swift中,String属于value type 传递时会被拷贝,而不是指传递引用。这样可以避免未知的修改。
声明空字符串
/*Empty String*/
var statement: String?
var empty = &&
var anoEmpty = String()
if empty.isEmpty {
statement = &empty string&
isEmpty函数判断是否为空,常用的函数还有
countElements 返回字符个数
String没有length函数,有lengthOfBytesUsingEncoding()函数,来获取指定字符集下的字符串长度
遍历则直接使用for-in来获取每个字符
字符串的插入可以直接使用\(),比较不再使用isEqualToString: 而是通过&==&
前后缀函数 hasPrefix() hasSuffix()
大小写转换 uppercaseString() lowercaseString
在Swift里我们可以通过访问String的utf8,utf16,unicodeScalar来获取指定字符集下的unicode值
scalar的value为unicode值,直接访问则为字符
字符也可以使用一元运算符&+&来进行拼接
Swift有两种基本的集合类型 Array,Dictionary
let声明则为常量,var声明则为变量,不再有Mutable类来维护可变类型
但是需要注意的是, Array常量已有下标的值仍可以修改,只不过不可以改变长度了。
两种数据结构都支持泛型
let i: Int = 4
let d: Int = 3
var arr: Array&Int& = [i, d]
var strings: String[] = [&123&, &nihao&]
var anoStrings : Array&String& = strings
同样有isEmpty,count等函数
let isEmpty = arr.isEmpty
let count = arr.count
数组的增删可以通过函数进行
insert(atIndex:)
removeAtIndex()
removeLast()等
另外在结尾添加元素或者数组可以直接通过 &+=&
var arr = [6,3]
arr.insert(10, atIndex: 0)
//[10,6,3,5]
arr.removeAtIndex(0)
arr.removeLast()
空数组和带参数初始化的数组
var emptyArr = Array&Int&()
var pArr = Array&Int&(count:3, repeatedValue:0)
数组属于有序存储,而字典则为无序
注意的是Swift里的字典中的Key可以为String,Int,Double和Bool类型
var dict: Dictionary&Int, Int& = [4 : 8, 10 : 20]
这里的键值都为Int类型,这在OC里肯定是不允许的
Dictionary也有count函数记录键值对的个数
另外介绍一个updateValue(forKey:)函数
该函数返回值为valueType value?
如果参数key在字典中并没有则会给字典添加新键值对,但是返回值为nil。如果有键,则讲新值赋进去,返回旧值。
dict.updateValue(50, forKey: 10)
//[4 : 8,10 : 50]
dict.updateValue(100, forKey: 50)
//[4 : 8, 10 : 50, 50 : 100]
遍历字典可以结合Tuple元组来实现
for (key, value) in dict {
& &//do someting with key and value...
遍历键或者值则使用dict.keys dict.values来访问
for key in dict.keys {
& &//do someting with key...
空字典的创建则类似于数组
var emptyDict = Dictionary&String, String&()
以上为这篇博客全部内容,欢迎指正和讨论。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致966,690 三月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
Swift 烧脑体操(一) - Optional 的嵌套
Swift 烧脑体操(一) - Optional 的嵌套
日. 估计阅读时间:
道AI风控、Serverless架构、EB级存储引擎,尽在!
Author Contacted
相关厂商内容
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
InfoQ每周精要
订阅InfoQ每周精要,加入拥有25万多名资深开发者的庞大技术社区。
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。}

我要回帖

更多关于 description什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信