了解swift:
swift新语言面世
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C*共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
Objective-C 开发者对 Swift 并不会感到陌生。它采用了 Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码。在此基础之上,Swift 还有许多新特性并且支持过程式编程和面向对象编程。
swift作用及前景
Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用。Swift 结合了 C 和 Objective-C 的优点并且不受C兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱得 Cocoa 和 Cocoa Touch 框架,他的降临将重新定义软件开发。
操作优势
Swift 对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的编程语言。它支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果。
(1) 应用优势
Swift对编译器对性能进行了优化,编程语言对开发进行了优化,两者互不干扰。Swift 既可以用于开发“hello, world”这样的小程序,也可以用于开发一套完整的操作系统。所有的这些特性让 Swift 对于开发者和苹果来说都是一项值得的投资。
(2) 语法简便
swift语言结转自Objective-C的命名参数表示在一个干净的语法,使得Swift的API更容易阅读和维护。
推断类型使代码更干净,不易犯错误,而模块消除了头,并提供命名空间。内存自动管理,而你甚至都不需要输入分号。
swift给我的感受
入学前,我对于Swift感受是一门全新的语言,拥有者强大的功能这是我所感知的,更多的感知是我确定可以用这个类似火星语言的东西能够做成我们每日常用的APP应用,便开始了我对Swift的追逐。
初碰swift:
(1) 应用软件
swift,用其开发的软件:Xcode,这兼容OC和swift俩款语言的开发工具,之前我对这款软件并没有了解,甚至不知道还有如此强大的能效,实属汗颜。
(2) 第一次下田
第一周上午,让我们打开了Xcode这款神奇的软件之后,跟着老师的步伐创建好文件包之后,写好了第一行代码:
print("Hello,world")
⚠️我来解释下,Swift不需要引入头文件或写在main()内,也不需要在每一句加上分号(当然,若你保有使用某些其他语言的习惯,如Java、C等 加上分号结尾亦不会报错,所以望各位下田的战士习惯了以前在语言上加分号的就可以不用加了,可以减少程序容量。
swift学习的语法
语法可是甚多,麻抓,无奈,一脸懵逼。这是我每天的常识,感觉这些代码我跟它交流我目前感觉就是跟它讲火星语;但是,唯快不破,只要努力去和它交流和理解总会找到一些学习的方法。
swift学习的内容
1. 数组:
数组是可以将很多元素和内容装进的大容量数据包:
① 数组类型:
ar array1 = [Int]()
var array2:[Int] = []
var array3 = [99, 12, 34, 156, 7]
var array4 = [Int](count: 100, repeatedValue: 1)
var array5 : [String]=[]
var array6 = ["apple", "grape","banana", "apple"]
var array7 = [String](count:100,repeatedValue: "")
② 删除数组:
array1.removeAtIndex(index:(2)
array1.removeFirst()
③ 对数组中的元素进行遍历:
//for index in 0..<array3.count{
// // []是对数组进行下标运算(取出指定位置的元素)
// print(array3[index])
// if index == 1{
// array3[index] = "litch"
// }
//}
//print(array3)
2.符号运用
&& - 短路与运算(而且)
|| - 短路或运算(或者)
⚠️ 标识符的命名规则:
1. 字母(Unicode字符)、数字、下划线,数字不能开头
2. 大小写敏感
3. 不能使用关键字做标识符
4. 驼峰标识 - 第一个单词全小写以后每个单词首字母大写
5. 见名知意
⚠️ 运算方式代码:
print("请输入圆的半径: ", terminator: "")
let r = inputDouble()
let perimeter = 2 * M_PI * r
let area = M_PI * r * r
print(String(format: "周长: %.2f", perimeter))
print(String(format: "面积: %.2f", area))
⚠️ 字符串插值:
👉🏿 print("b = ", terminator: "")
👉🏿 let b = inputInt()
print("\(a) + \(b) = \(a + b)")
print("\(a) - \(b) = \(a - b)")
print("\(a) * \(b) = \(a * b)")
print("\(a) / \(b) = \(a / b)")
print("\(a) % \(b) = \(a % b)")
3.循环:
循环就是不断重复一段代码:
for, while, repeat while 循环代码
①游戏猜数字repeat while循环核心代码:
repeat {
counter += 1
print("请输入你猜的数字: ", terminator: "")
thyAnswer = inputInt()
if thyAnswer > answer {
print("小一点")
}
else if thyAnswer < answer {
print("大一点")
}
else {
print("恭喜你猜对了!你总共猜了\(counter)次")
}
} while thyAnswer != answer
找水仙花数for循环核心代码:
for i in 100...999 {
let a = i % 10 // 个位
let b = i / 10 % 10 // 十位
let c = i / 100 // 百位
if i == cube(a) + cube(b) + cube(c) {
print(i)
求偶数while for核心循环代码:
while i <= 100 {
sum += i
i += 2
}
print(sum)
var sum = 0
for i in 1...100 {
if i % 2 == 0 {
sum += i
4. GET: 穷举法(穷尽所有的可能性直到找到正确答案)
//for x in 0...20 {
// for y in 0...33 {
// let z = 100 - x - y
// if 5 * x + 3 * y + z / 3 == 100 && z % 3 == 0 {
// print("公鸡: \(x), 母鸡: \(y), 小鸡: \(z)")
// }
// }
//}
5.最小公倍数和最大公约数:
print("输入两个正整数: ", terminator: "")
let x = inputInt()
let y = inputInt()
print("\(x)和\(y)的最大公约数是: \(gcd(x, y))")
print("\(x)和\(y)的最小公倍数是: \(lcm(x, y))")
6.斐波拉切数列
var a = 1, b = 1
print(a)
print(b)
for _ in 3...20 {
print(a + b)
(a, b) = (b, a + b)
}
7.冒泡排序
for i in 0..<array.count - 1 {
var swapped = false
for j in 0..<array.count - 1 - i {
if array[j] > array[j + 1] {
(array[j], array[j + 1]) = (array[j + 1], array[j])
swapped = true
}
}
if !swapped {
break
}
}
print(array)
造就swift:
完成swift小游戏
通过对上面学习的内容遍完成相对应的游戏:
(1) 筛子游戏:
func roll() ->Int {
return Int(arc4random_uniform(6)) + 1
let firstPoint = roll() + roll()
print("玩家摇出了\(firstPoint)点")
(2) IT等级:
print("请输入你的月薪: ", terminator: "")
//let salary = inputInt()
//if salary >= 0 {
// switch salary {
// case 0:
// print("你是一个无业游民")
// case 1...30000:
// print("你是一个小码畜")
// case 30001...60000:
// print("你是一个小码奴")
// case 60001...100000:
// print("你是一个大码农")
// case 100001...200000:
// print("你是一个光荣的IT民工")
// case 200001...500000:
// print("你是一个优秀的IT工程师")
// case 500001..<10000000:
// print("你是IT精英")
// case 10000000..<100000000:
// print("你是IT大哥, 我服")
// default:
// print("你是头上有光环的IT领袖, 求带")
// }
//}
//else {
// print("你丫有病!!!")
//}
(3) 分段式求值:
print("x = ", terminator: "")
let x = inputDouble()
let y: Double
if x < -1 {
y = 2 * x - 5
}
else if x <= 1 {
y = 3 * x + 7
}
else {
y = 4 * x - 3
}
print("f(\(x)) = \(y)")
(4) 100元鸡:
公鸡五元一只,母鸡三元一只,小鸡一元三只
用一百块钱买一百只鸡
//GET:穷举法(穷尽所有的可能性直到正确答案)
let start = NSDate()
for x in 0...20 {
for y in 0...33 {
let z = 100 - x - y
if 5 * x + 3 * y + z / 3 == 100 && z % 3 == 0 {
print("公鸡: \(x), 母鸡: \(y),小鸡: \(z)")
}
}
}
let end = NSDate()
print(end.timeIntervalSinceDate(start))
品尝swift:
了解swift程序码
Swift程序码第一周大概就这么多,下周会出现更多的代码,固然更多会去学习Swift了解Swift不断的去更新对它的认知和了解度。
对swift学习感受
1.对于第一周学习Swift的感受,给个表情,自己体会:😫,从周一到周五上课的表情是这样的:😊😕😐😳😫,真的挺难受的,学习不好原因的导火索是:学习能力略差。
2.学完一周,脑袋还是麻的,知识总结不够,知识完善的不充分,程序代码记不住。
⚠️ 第二周的向往:把代码尽量补上来,多🔨代码,多下田。更加适应这个Swift这个磨人的小妖精,理顺每天学习的东西。