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是一种趋势.在网上看到"自学 ...
随机推荐
- [WP8.1UI控件编程]Windows Phone动画方案的选择
8.1 动画方案的选择 Windows Phone的动画实现方式有线性插值动画(3种类型).关键祯动画(4种类型)和基于帧动画,甚至还有定时器动画,然后动画所改变的UI元素属性可以是普通的UI元素属性 ...
- Android --#字XO小游戏
Layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...
- OSG动画学习
OSG动画学习 转自:http://bbs.osgchina.org/forum.php?mod=viewthread&tid=3899&_dsign=2587a6a9 学习动画,看了 ...
- java poi ppt操作示例
poi3.9版本,官网 http://poi.apache.org/slideshow/how-to-shapes.html import java.awt.Color; import java.io ...
- pushState()、popstate事件配合ajax实现浏览器前进后退页面局部刷新
最近研究pushState,看了网上的文章还是不怎么会用,于是自己摸索着理解使用,终于实现局部刷新同时前进后退. 首先说说pushState(),这个函数将当前的url等信息加入history堆栈中: ...
- android-时间选择器和日期选择器
一.实现动态输入日期和时间 * DataPicker(日历选择器) * DataPicker对象以init()方法指定DatePicker初始的年月日及OnDateChangedListener事件 ...
- bzoj1855: [Scoi2010]股票交易--单调队列优化DP
单调队列优化DP的模板题 不难列出DP方程: 对于买入的情况 由于dp[i][j]=max{dp[i-w-1][k]+k*Ap[i]-j*Ap[i]} AP[i]*j是固定的,在队列中维护dp[i-w ...
- css - float浮动模块的高度问题 解决方案
当一个Div中的子元素都是浮动元素时,该div是没有高度的.通常会带来很多困扰,解决方案如下: 低版本统配兼容: overflow: hidden; 下面是不支持低配浏览器,而且似乎该效果对 P 标签 ...
- mysql维护常用命令
mysql一个字段的值是将其他字段的被容链接一块 UPDATE `tablename` SET 字段1=CONCAT(字段2," ",字段3," ",字段4) ...
- windows内核 内存管理
一.几个基本的概念 1.存储器的金字塔结构 存储器从下之上依次是磁盘/flash.DRAM(内存).L2-cache.L1-cache.寄存器,越在上面的存储器访问速度越快,同时价格也越昂贵,每一级都 ...