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是一种趋势.在网上看到"自学 ...
随机推荐
- 定期来一次“绩效谈话”(摘自易中)
值得借鉴学习 管理者和下属直接的互动关系当中,需要有一个定期的反馈机制.员工在工作当中需要管理者给他持续地反馈.以下是一个绩效谈话的标准程序: 一:说明会谈的目的和时间:我们用10分钟对你上一阶段的工 ...
- [题解+总结]NOIP动态规划大合集
1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...
- 【wikioi】1003 电话连线
题目链接 算法: 最小生成树 PS:被卡过2天(中间的时间没去做).日期:2013-09-13 13:49:47 ~ 2013-09-17 13:01:07 此题为基础题 刚开始学图论时只会用Krus ...
- 【BZOJ1034】[ZJOI2008]泡泡堂BNB 贪心
Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂.每一场比赛前,对阵 ...
- 【BZOJ3211&3038】花神游历各国&上帝造题的七分钟2(CodeVS)
Description Input Output 每次x=1时,每行一个整数,表示这次旅行的开心度 Sample Input 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 ...
- ThinkPHP3.2.3--相对路径的写法
window.location.href='/index.php/Home/Manager/login' 以 / 开始,而不是 ./
- 9x9乘法表输出[Java]
笔试,9x9乘法表输出的问题,看似简单,回来把当时写的结果输入一遍后发现,并没有想象中的“完美”.把改写的pos在此,警示...不要忘记任何细节. public class NXN { public ...
- House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount ...
- android之进度条组件ProgressBar
首先是main.xml文件 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android& ...
- oracle函数,查询,事务
函数包括:单行函数,多行函数(分组函数) 数值函数: --绝对值 select abs(-12.3) from dual; --向上取值 select ceil(5.3) from dual; --向 ...