import Foundation
//// 输出语句 //print("Hello, World!") // //// 使用let定义一个常量, 不能重新赋值 //// Swift支持隐式类型推断,可以根据初值,自动的判断Swift的数据类型 //let a = 10 // //var b : String = "sf" // //let c = 20.1 //// Swift不支持隐式类型转换,不能让两个不一样的数据类型做四则运算 //// Swift强转格式: 数据类型 (需要装换的数据) //let d = Double(a)+c // //let 中国 = "世界第一" // //let 😢 = "❀" // //let n = 中国 + 😢
//let a = "abv" // //let b = "acc" //// Swift 里面支持运算符的重载, 会根据语境自动判断运算符的含义 //print(a + b)
//// Swift里面使用var定义一个变量 //var a = 10 // //// 如果需要定义一个初值为nil的变量的的话, 格式: var + 变量名 + ":" +变量类型? = nil //var b : String? = nil
/**
* 数组
*/ //// Swift数组里面的数据类型必须是一样的 //let array = [1, 2, 3, "a"] // AnyObject Swift1.0版本, NSObject Swift2.0版本 //// 数组初始化的第二种方式, 先指定数据类型 //let array1 : [Int] = [1, 2, 3] //// 定义一个空的数组 //let array2 : [Int] = []
//var array = [1, 2, 3, 4, 5] // 数组的增删改查 /** 查 */ //print(array[1]) /** 增 */ //array.insert(301, atIndex: 2) // 在某一个位置插入一条数据 // //var array2 = [10, 20, 30] // //array.insertContentsOf(array2, at: 2) // 在某一个位置插入新的数组 // //print(array)
/** 删 */ //array.removeAll(keepCapacity: true) // 删除数据的同时, 保存内存的空间 Swift里面的bool是一个枚举.只有true 和false两种参数 //let range : Range = Range(start: 2, end: 4) // //array.removeRange(range)
/** 改 */ //array[1] = 10 // //print(array)
//var array2 = [6, 7, 8, 9] // //var array3 = array + array2 // //print(array3)
/**
* 字典
*/ // 创建字典的两种方式, Swift1.0 这种方法不存在 //let dictionary = [1 : 2, 3 : 4, "a" : "b"] //// Swift的字典里面 所有的key, 所有的value都必须是同一类型 //let dictionary1 : [Int : String] = [1 : "a", 2 : "b"]
//var dict = [1 : 2, 3 : 4] ///** 增 */ //dict[7] = 8 ///** 改 */ //dict[1] = 9 //print(dict) ///** 删 */ //dict.removeValueForKey(1) // == dict[1] = nil //print(dict) ///** 查 */ //print(dict[3])
/**
* 元组
*/ // 使用() 表示定义一个元祖, 元祖里面没有数据类型的概念 //let type = ("罗峰", "DMI") //// 访问元祖的第一个方法 //print(type.0) // //let type2 : (name : String, nickName :String) = type // //print(type2.nickName)
//let array = [1, 2, 3, 4, 5] //// ////for var i = 0 ; i < array.count; i++ { //// print("i = \(i)") ////} // //var i = 0 // ////while i < 10 { //// i++ //// print(i) ////} // //repeat { //i++ //print(i) //}while i < 10 // //for var a in array { // print(a) //}
/**
* 循环结构
*/
//var timer : String? = nil // //if timer != nil { // print("timer is true") //} else { // print("timer is false") //}
//let value = 11 // ////switch value { ////case 10: //// print("0") ////default: //// print(value) ////} // ////0...10 表示从0 开始到10 结束 包含10 ////0..<10 不包括10 //switch value { //case 0...10: // print(value) //case 11..<20: // print(value) //default: // print("飞了") //}
//let point = (10, 10) // //switch point { //case (10, 10): // print(point) //case (_, 10): // print(point.0) //case (10, _): // print(point.1) //case (_, _): // print(point) //} // //let value = 0 //let value1 = 100 //switch value { //case 0 where value1 < 10: // print(value) //case 0 where value1 > 10: // print("true") //default: // print("错误") //}
// 无参无返回值� // func (关键字) test (函数名) "()"(参数列表) -> Void(返回值类型) //func test() -> Void { // print("I am the first 函数") //} // //test()
// 无参有单个返回值 //func test1() -> String { // return "禹神" //} // //let str = test1() // //print(str)
//func test2() -> Array<Int> { // return [1, 2, 3] //}
// 返回一个OC的数组 //func test3() -> NSArray { // return [1, 2, "a", "b"] //} // //var array : NSArray? = nil // //array = test3() // //print(array)
// 无参有多个返回值
//func test8() -> (String, String) { // return ("罗峰", "18") //} // //let type = test8() // //print(type) //print(type.0)
// 有参无返回值 // 参数格式参数名 + ":" + 参数类型 // -> Void 可以省略 //func test4(name : String, sex :String) { // print("我叫\(name), 我的性别是\(sex)") //} // //test4("罗峰", sex: "未知") // //// 参数是一个数组格式: 参数名 + ":" + Arra<数据类型> //var array : Array = [1, 2, 3, 4, 5] // //func test5(person : Array<Int>) { // print(person) //} // //test5(array) // //// 有参有单个返回值 // //func test6(person : Array<String>) -> Array<String> { // return person //} // //func test7(person : Dictionary<String, String>) -> Dictionary<String, String> { // return person //}
// 有参有多个返回值 //func test9(name : String, age : String) -> (String, String) { // return (name, age) //} // //let ta = test9("luofang", age: "huaer") // //print("i am\(ta.0), jintn\(ta.1)")
// inout函数
// Swift函数里面的参数 默认是使用let修饰的,是不可以更改的 //func test10(inout number : Int) { // number = 100 //} // //var a = 5 // //test10(&a) // //print(a)
// 嵌套函数
func test12(){ print("一层") func test13(){ print("二层") func test14(){ print("三层") func test15(){ print("4层") func test16(){ print("5层") func test17(){ print("6层") } } } } } }