ios -- 教你如何轻松学习Swift语法(一)
目前随着公司开发模式的变更,swift也显得越发重要,相对来说,swift语言更加简洁,严谨.但对于我来说,感觉swift细节的处理很繁琐,可能是还没适应的缘故吧.基本每写一句代码,都要对变量的数据类型进行判断,还要进行强转等等.
好了,废话不多说了,直接把我对swift的语法的一些理解奉献给大家,希望能对学习swift语法的朋友有所帮助,如有不足之处,还请多多包涵,如果有错误之处,欢迎指正
Swift 介绍
Chris Lattner 开始着手 Swift 编程语言的设计工作克里斯·拉特纳何许人?OC: #import <UIKit/UIKit.h>
Swift: import UIKit
OC: NSLog(@"Hello world”); / NSLog(@"%d", a);
2 //Swift中字符串不需要@
print(a) / print("hello world")
let view : UIView = UIView()
view.alpha = 0.5
view.backgroundColor = UIColor.orangeColor()
let n = 3.14
let View = UIView()
let m =
let n = 3.44
// let result = m + n 错误写法
let a : Double = 2.44
let b : CGFloat = 4.55
let result1 = a + Double(b)
int a =
if (a > ) {
NSLog(@"a大于0")
} if (a) {
NSLog(@"a不等于0")
}
let a =
if a > {
print("a大于0")
} else {
print("a不大于0")
}
let result = m > n ? m : n
func online(age : Int , IDCard : Bool , money : Int) {
guard age >= else {
print("回家叫家长")
return
}
guard IDCard == true else {
print("回家拿身份证")
return
}
guard money >= else {
print("回家拿钱")
return
}
print("留下来上网")
}
online(, IDCard: true, money: )
switch sex {
case , :
print("正常")
default:
print("非正常人")
}
5.3 swift支持多种数据类型判断
//浮点型switch判断
switch m {
case 3.14:
print("m是π")
default:
print("m非π")
} //字符串switch判断
switch opration {
case "+":
result = a + b
case "-":
result = a - b
case "*":
result = a * b
case "/":
result = a / b
default:
print("非法操作")
}
let score =
switch score {
case ..<:
print("不及格")
case ..<:
print("及格")
case ..<:
print("良好")
case ...:
print("优秀")
default:
print("不合理分数")
}
for (int i = ; i < ; i++) {
}
// 区间遍历 0..<10 0...9
for i in ..< {
print(i)
} for i in ... {
print(i)
} // 如果一个标识符不需要使用, 那么可以通过 _ 来代替
for _ in ..< {
print("hello world")
}
int a =
while (a) {
}
var i =
while i > {
print(i)
i -=
}
// 区别: 不再使用do while --> repeat while
var m =
repeat {
print(m)
m +=
} while m <
let str = "hello swift"
var strM = "hello world"
strM = "hello china"
let length = str.characters.count
for c in str.characters {
print(c)
}
let str1 = "Hello"
let str2 = "World"
let str3 = str1 + str2
let name = "lgp"
let age =
let height = 1.98
let infoStr = "my name is \(name), age is \(age), height is \(height)"
let min =
let second =
let timeStr = String(format: "%02d:%02d", arguments: [min, second])
// 1.方式一: 将String类型转成NSString类型, 再进行截取
// (urlString as NSString) --> NSString
let header = (urlString as NSString).substringToIndex()
let footer = (urlString as NSString).substringFromIndex()
let range = NSMakeRange(, )
let middle = (urlString as NSString).substringWithRange(range)
// 2.方式二: Swift原生方式进行截取
let headerIndex = urlString.startIndex.advancedBy()
let header1 = urlString.substringToIndex(headerIndex) let footerIndex = urlString.endIndex.advancedBy(-)
let footer1 = urlString.substringFromIndex(footerIndex) let range1 = headerIndex.advancedBy()..<footerIndex.advancedBy(-)
let middle1 = urlString.substringWithRange(range1)
let array = ["why", "yz"]
//基本写法
var arrayM = Array<String>()
//单写法
var arrayM = [String]()
arrayM.append("ljp")
let removeItem = arrayM.removeAtIndex() 返回值为删除的元素
arrayM.removeAll()
arrayM[] = "why"
let item = arrayM[]
for i in ..<array.count {
print(array[i])
}
for name in array {
print(name)
}
for (index, name) in array.enumerate() {
print(index)
print(name)
}
let array1 = ["why", "yz"]
let array2 = ["lmj", "lnj"]
let resultArray = array1 + array2
let dict = ["name" : "why", "age" : , "height" : 1.88]
var dictM = Dictionary<String, NSObject>()
var dictM = [String : NSObject]() // 常见
dictM.updateValue("why", forKey: "name")
dictM.removeValueForKey("age")
//如果原有没有对应的key/value, 那么就添加键值对
// 如果原有已经有对应的key/value, 那么直接修改
dictM.updateValue("1.77", forKey: "height")
dictM["name"] = "why"
let item = dictM["name"]
for key in dict.keys {
print(key)
}
for value in dict.values {
print(value)
}
for (key, value) in dict {
print(key)
print(value)
}
let dict1 = ["name" : "why", "age" : ]
var dict2 = ["height" : 1.88, "phoneNum" : "+86 110"] for (key, value) in dict1 {
dict2[key] = value
}
let infoTuple = ("why", , 1.88, "+86 110")
// 使用元组描述一个人的信息
("", "张三", , )
// 给元素加上元素名称,之后可以通过元素名称访问元素
(id:"", name:"张三", english_score:, chinese_score:)

ios -- 教你如何轻松学习Swift语法(一)的更多相关文章
- ios -- 教你如何轻松学习Swift语法(二)
前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦. 一.可选类型(重点内容) 1.什么是可选类型? 1.1在OC开 ...
- ios -- 教你如何轻松学习Swift语法(三) 完结篇
前言:swift语法基础篇(二)来了,想学习swift的朋友可以拿去参考哦,有兴趣可以相互探讨,共同学习哦. 一.自动引用计数 1.自动引用计数工作机制 1.1 swift和o ...
- IOS之Foundation之探究学习Swift实用基础整理<一>
import Foundation //加载网络数据,查找数据的字符串 let dataurl = "http://api.k780.com:88/?app=weather.city& ...
- 一步一步学习Swift之(二):好玩的工具playground与swfit基础语法
playground好于在于能一边写代码一边看到输出的常量变量的值.不需要运行模拟器. 我们来试一下该工具的用法. 打开xcode6开发工具,选择Get started with a playgrou ...
- swift 语法 - 以及学习资料
附上一些swift的一下学习资料: 1.Swift语法介绍官方英文版:The Swift Programming Language 2.Swift与Objective-C相互调用Using Swift ...
- iOS开发swift语法0基础篇—————(swift技术交流群:361513739)
iOS开发之swift语法0基础篇:点击打开链接 swift技术交流QQ群361513739
- 学习swift语言的快速入门教程推荐
随着苹果产品越来越火爆,苹果新推出的swift必定将在很大程度上代替oc语言.学好swift语言,对于IOS工程师来讲,已经是一门必备技能. 有一些比较好的英文版教程,值得学习. 1. Swift T ...
- Swift翻译之-Swift语法入门 Swift语法介绍
目录[-] Hello world - Swift 简单赋值 控制流 函数与闭包 对象和类 枚举与结构 协议和扩展 泛型 2014.6.3日,苹果公布最新编程语言Swift,Swift是一种新的编程语 ...
- 自学 iOS - 三十天三十个 Swift 项目 第一天
最近公司项目不是很忙,偶然间看到编程语言排行榜,看到swift 已经排到前10了,然OC排名也越来越后了,感觉要上车了,虽然现在项目都是用OC写的,但是swift是一种趋势.在网上看到"自学 ...
随机推荐
- 【BZOJ】2879: [Noi2012]美食节
题意 \(m\)个厨师,\(n\)种菜,每种菜需要做\(p_i\)份,每个厨师做第\(i\)种菜用时\(t_{i, j}\).一个厨师做完一道菜才能做下一道.每份菜的时间是这个厨师做完这道菜的用时加上 ...
- 【noiOJ】p1776
t1776:木材加工 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给 ...
- 理解钩子Hook以及在Thinkphp下利用钩子使用行为扩展
什么是钩子函数 个人理解:钩子就像一个”陷阱”.”监听器”,当A发送一个消息到B时,当消息还未到达目的地B时,被钩子拦截调出一部分代码做处理,这部分代码也叫钩子函数或者回调函数 参考网上说法 譬如我们 ...
- 20145330《Java程序设计》第二次实验报告
20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...
- 纪念逝去的岁月——C/C++字符串旋转
几年前,我还不会写这个 例如: 1.向右→旋转5个字符 输入:HelloWorld 输出:WorldHello 2.向右→旋转3个字符 输入:HelloWorld 输出:rldHelloWo 代码 # ...
- php 将查询出的数组数据存入redis
我们从数据库查询出来的数据一般为数组的形式, 而redis是不支持存入数组的, 一种解决办法是将数组转化为json数据,再将json存入redis,之后取出时再将json转化为php数组. 但将取出的 ...
- parentNode,offsetParent
元素.parentNode : 父节点 只读 属性 当前节点的父级节点 没有兼容性问题 可放心使用 <!DOCTYPE HTML> <html> <head> ...
- lightetreeview
http://www.16css.com/menu/905.html 其他树形菜单:很好--1.http://www.cnblogs.com/zhhh/archive/2011/11/25/22637 ...
- java中内部类使用小结
内部类是指在一个外部类中再定义一个类,类名不需要和文件名相同 内部类可以是静态的,类的修饰符可以是private,default,protect,public修饰 ,而外部类只能是public 和 d ...
- love your life
However mean your life is, meet it and live it ;do not shun it and call it hard names. It is not so ...