通过下面的代码先对Swift有个感性的认识吧。
使用 let 来声明常量,使用 var 来声明变量。一个常量的值在编译时并不需要获取,但是你
只能为它赋值一次。也就是说你可以用常量来表示这样一个值:你只需要决定一次,但是需 要使用很多次。
常量不占数据空间,编译时转化为二进制数,变量占内存空间,前者速度快。
- import Foundation
- var a:Int = 123 // 定义Int类型的变量a
- let b = 321 // 定义常量b通过类型推断为Int
- println("\(a) + \(b) = \(a + b)") // 字符串中的\()可以放变量、常量、表达式
- // 输出:123 + 321 = 444
- // 从1加到100求和
- var sum = 0
- for var i = 1; i <= 100; ++i { // for循环
- sum += i
- }
- println("SUM = \(sum)") // 输出:SUM = 5050
- for ch in "hello" { // 对hello的每个字符进行循环
- println(ch)
- }
- var randomAge = arc4random() % 50 // 调用Foundation中的函数产生随机数
- print("You're \(randomAge) years-old! ")
- var myAge:UInt32 = 33;
- if randomAge > myAge { // if-else分支结构
- println("Older than me!")
- }
- else {
- println("Younger than me!")
- }
- // 根据现在的系统时间显示提示语
- // [吐槽]时间日期的操作在苹果的编程语言里面真麻烦
- var currDate = NSDate() // 创建时间日期对象
- var myCal = NSCalendar(calendarIdentifier:NSGregorianCalendar) // 创建日历对象(阳历[格里高利历])
- // 下面两行代码取出当前时间日期的小时部分
- var myComp:NSDateComponents = myCal.components(NSCalendarUnit.HourCalendarUnit, fromDate:currDate)
- var hour = myComp.hour
- switch hour {
- case 7, 8:
- println("Enjoy your breakfast!")
- case 11, 12, 13:
- println("Have a good lunch!")
- case 18, 19:
- println("It's a good time for dinner!")
- default:
- println("Do something to make yourself happy.")
- }
- var myArray:Int[] = [12, 35, 96, 47, 5, 23, 68]
- myArray += [32, 81]
- println(myArray) // 输出: [12, 35, 96, 47, 5, 23, 68, 32, 81]
- // 定义找出数组中最大和最小元素的函数
- // 声明函数的关键字是func, findMaxAndMin是函数名
- // 函数名后的()中是参数列表, 其参数是Int型的数组,
- // 返回值是一个元组(包含多个数据的复合值), 包含两个整数
- // 函数的返回值是在函数参数列表后的->之后指定其类型的
- func findMaxAndMin(x:Int[]) -> (Int, Int) {
- var min:Int = x[0]
- var max:Int = x[0]
- for var index = 1; index < x.count; ++index {
- if x[index] > max { max = x[index] }
- else if x[index] < min { min = x[index] }
- }
- return (min, max)
- }
- println(findMaxAndMin(myArray)) //输出: (5, 96)
- // 定义一个字典类型(键值对映射)
- var myDic = [1001:"Apple", 1002:"Banana", 1003:"Grape"]
- for (no, name) in myDic {
- println("key = \(no), value = \(name)")
- }
- myDic[1003] = "Strawberry"
- println(myDic) // 输出: [1001: Apple, 1002: Banana, 1003: Strawberry]
- var myFruit1 = myDic[1002] // Banana
- var myFruit2 = myDic[2001] // nil
- if myFruit2 == nil {
- println(myFruit1)
- }
- else {
- println(myFruit2)
- }
- // 将函数作为函数的参数(Lambda函数)
- func repeat(count:Int, callback: () -> ()) {
- for i in 0..count {
- callback();
- }
- }
- // 调用repeat函数输出10次Hello, world!
- repeat(10, { println("Hello, world!") })