swift 笔记2

简介:

swift交流群:342581988,欢迎增加。

今天真郁闷啊,把mac升级到10.10了。如今好了,曾经的程序都跑不了了。哎,不说了,让我郁闷会再。

说说条件推断吧,事实上这些基本的语法大家都知道肯定差点儿相同。好吧,我就自己写写看吧。

上代码

let individualScores = [78,32,32,53,23]
var teamScore = 0
for score in individualScore{
     if score > 50{
        teamScore += 3
     }else{
        teamScore += 1
     }
}
teamScore

这个事实上和曾经的oc差点儿相同了,我想大家都注意到了。就是这个Swift把曾经用圆弧括号的地方所有去掉,把分号也去掉。大概就是这样子

在这里。要说说这个if推断语句,这个if后面的条件必须是个Boolean表达式。换句话说,假设上面这样写

if score{
   ...
}
那就是错的了

由于score是一个非Boolean值,这个在曾经都是会自己主动与0相比較,非零值就会运行if后面语句。

这个地方if和let能够一起使用。let修饰变量时可选的,能够是一个值。也能够是nil。在类型后面加一个?表示他是可选的。

let v : int;已分配内存;

let v : int ? 还没分配内存

以下if里面用来推断optionName是否存在。

var optionString:String?

= "Hello" optionString == nil var optionName: String ?

= "John Appleseed" var greeting = "Hello!" if let name = optionName{ greeting = "Hello, \(name)" }

假设上面optionName = nil;那么结果将会不一样,会运行你后面else部分。

以下说说switch吧,这个我也还没搞太懂,所以大家一定要拍砖

这个switch支持不论什么数据 的比較操作。不不过整形之类的,

let vegetable  = "red pepper"
switch vegetable {
     case "celery":
           let vegetableComment = "Add some raisins and make ants on a log."
    case "cucumber","watercress":
          let vegetableComment = "That would make a good team sandwich."
    case let x where x.hasSuffix("pepper"):
          let vegetableComment = "Is it a spicy \(x)?"
    default:
          let vegetableComment = "Everything tastes good in soup."
 

}

这个地方后面的default是不能少的,不然就会报错,只是这个地方有点变化的是,break不见了。对的。break不要了。

再说说for-in迭代循环吧

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]
var largest = 0
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
        }
    }
}
largest

事实上这个没什么可说的了,看看即可了,

然后在看看while和do...while吧

var n = 2;
while n < 100{
      n = n * 2
}
n

var m = 2
do{
      m = m * 2
}while m < 100
m

注意确保循环进行至少一次


好吧,再写最后一个,应该算是一种新的写法吧

var firstForLoop = 0
for i in 0..3{
    firstForLoop += i
}
firstForLoop

var secondForLoop = 0
for var i = 0;i < 3; ++i{
      secondForLoop += 1
}
secondForLoop

..代表值递增。貌似包含端点值。


好吧,今天就写这点吧,感觉好慢啊,以后不能这样写了。必须 加速了,捡重点写点吧。






本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5112570.html,如需转载请自行联系原作者


相关文章
|
2月前
|
存储 编译器 Swift
Swift笔记:Swift中的扩展语法
Swift笔记:Swift中的扩展语法
58 1
|
4月前
|
存储 安全 Swift
技术笔记:swift小知识点之Swift中的初始化(Initialization)
技术笔记:swift小知识点之Swift中的初始化(Initialization)
|
iOS开发 数据安全/隐私保护 Swift
|
Java Apache
thrift:swift项目笔记
先声明:此swift不是Apple公司的那个swift开发语言,而是facebook的另一个开源项目。 facebook的thrift IDL文件,如果默认用thrift -gen java生成java代码,代码十分冗长,大家可以先感受一下。
1292 0
|
Swift
Swift开发笔记4.协议Protocal
Swift中的协议就是我们通常所说的接口,它连接了软件和软件模块,非常重要。首先定义一个协议: protocol CgProtocol { } 协议也有基协议: protocol CgProtocol : NSObjectProtocol { } 协议是可以多继承的。
756 0
|
存储 Swift
Swift开发笔记3.Swift中setter和getter的基本用法
Swift中有存储属性和计算属性两种。其中在计算属性中可以实现setter和getter方法,我们在playground中定义两个结构体: struct Point { var x = 0.0, y = 0.0 } struct Size { var width = 0.0, hight = 0.0 } 假设这两个结构体要实现一个画图的功能。
976 0
|
程序员 Swift
Swift开发笔记2.浅谈闭包
一门计算机语言要支持闭包,需要有两个前提: 1.支持函数类型,能够将函数作为参数或返回值传递。
896 0