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是一种趋势.在网上看到"自学 ...
随机推荐
- [Cocos2d-x For WP8]Layer 层
层(CCLayer) 从概念上说,层就是场景里的背景. CCLayer同样是CCNode的子类,通常用addChild方法添加子节点.CCLayer对象定义了可描绘的区域,定义了描绘的规则.C ...
- iOS 电话在后台运行时,我的启动图片被压缩
一,经历 <1> 第一感觉是启动图片没有设置好,长度设置小了.但是和网上说的正确方式相比,没什么差别. <2> 害怕是控制器影响的,又新建了一个项目,来检验启动图片是否设置成功 ...
- asp.net发送邮件
using System.Net.Mail; /// 发送邮件 /// </summary> /// <param name="sender"></p ...
- eclipse中中文字体过小
转自 http://www.cnblogs.com/HD/p/3654139.html
- iOS下的 Fixed + Input 调用键盘的时候fixed无效问题解决方案
做touchweb开发的时候,做头疼的是,电脑上面时候好的,有些手机上面也是好的,个别手机和浏览器出现问题,对于这些,只能慢慢调试,找问题. 今天说一下比较老的IOS的问题,那就是"iOS下 ...
- [LintCode] Maximal Square 最大正方形
Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and ret ...
- Linux_Shell
一.Shell 种类与归属 Unix与Linux常见的Shell脚本解释器有bash,sh,csh,ksh等(PS: bash 完全兼容sh) bash : linux 默认的shell sh : u ...
- js实现事件模型bind与trigger
function Emitter() { this._listener = [];//_listener[自定义的事件名] = [所用执行的匿名函数1, 所用执行的匿名函数2] } //注册事件 Em ...
- MyBatis环境搭建配置文件+入门视频下载
1.MyBatis优点 操作简单话,代码量少,效率高,成本就降低了 2.MyBatis缺点 参数只能限制为一个 selece语都要手动来写 3.与JDBC的关系:是对JDBC的扩展 把sql语句和ja ...
- thinkphp添加空数据的解决办法
thinkphp真是个麻烦的东西,各种小问题,其中字段映射的表单名不能与数据库的字段名称相同,否则会添加空数据! 还有自动完成的名称要与字段映射后的名称相同,否则自动完成不会起作用! 还有自动验证的字 ...