swift入门学习
2016-04-28 00:00
399 查看
通过下面的代码先对Swift有个感性的认识吧。
使用 let 来声明常量,使用 var 来声明变量。一个常量的值在编译时并不需要获取,但是你
只能为它赋值一次。也就是说你可以用常量来表示这样一个值:你只需要决定一次,但是需 要使用很多次。
常量不占数据空间,编译时转化为二进制数,变量占内存空间,前者速度快。
[javascript]
view plain
copy
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!") })
使用 let 来声明常量,使用 var 来声明变量。一个常量的值在编译时并不需要获取,但是你
只能为它赋值一次。也就是说你可以用常量来表示这样一个值:你只需要决定一次,但是需 要使用很多次。
常量不占数据空间,编译时转化为二进制数,变量占内存空间,前者速度快。
[javascript]
view plain
copy
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!") })
相关文章推荐
- Swift中的通知
- iOS学习笔记45-Swift(五)协议
- iOS学习笔记45-Swift(五)协议
- Swift之逻辑分支&循环的介绍
- iOS Swift&OC 模仿主流App 实现滑动视图隐藏导航栏
- Swift/OC 为View或ImageView设置聊天气泡的小三角
- swift 中运算符空格规则,as? 操作符
- swift2.0 学习笔记five
- Swift数据类型之整型和浮点型-备
- swift - 类型方法(即静态变量)
- Swift UITableViewCell中的按钮点击事件
- swift - mutating(杖举或结构体,通过方法来改变自身的值)
- swift - 类型中的self
- swift 中的“..<”,“ ...“以及“_”
- swift2.0 学习笔记four
- UIImageView圆角设置swift
- Swift编译时报错:Command failed due to signal: Segmentation fault: 11
- Swift2.0 代理的使用
- Swift学习 (长期)
- Swift3.0转场动画的使用