swift(一)天
2015-10-21 17:35
274 查看
由于公司项目都是用swift写的。。 菜鸟一枚的我开始自学swift
记录一下。。 自己一个人学很没动力。。。 现在脑子是个浆糊。。打算今天先看到这里。。 (以为今天起码了解了一点语法,应该能看懂一点项目了。。 刚刚瞥了一眼。。 这是写iOS的吗?? 我咋一点都看不懂)。。好吧。。 我需要努力努力。
import UIKit
class ViewController:
UIViewController {
override
func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor =
UIColor.redColor()
var stringValue:String
stringValue = "stringValue"
var stringValue2 =
"string2"
stringValue2 = "string3"
//1.输出
print(stringValue, terminator:"")//不会换行
因为terminator将默认参数值
更改了
print(stringValue2)
//2.默认参数值
someFunction()
// someFunction(15, parameter2: "string4")//此处对应的 func someFunction(parameterWithDefault: Int = 10, parameter2: String = "string1")
//3.忽略外部参数名 (利用一个 _
代替外部参数名)
someFunction(12,
"aa")
//4.无返回值
没有返回值得函数都会被返回 特殊的值 void
是一个空元祖类型
unReturnFouction("Anna")
//5.多重返回值
var someInts = [Int]()
print("someInt is of type [Int] with
\(someInts.count)")
someInts.append(3)//向数组中添加数据
print("[Int] with
\(someInts)")
//创建默认值的数组
var fourDouble = [Double](count:
3, repeatedValue: 0.0)
fourDouble.append(14.1)
print("fourDouble
\(fourDouble)")
//通过两个数组创建一个数组
var anotherDouble = [Double](count:
3, repeatedValue: 1.0)
anotherDouble += [16.1]
print("anotherDouble:
\(anotherDouble)")
//和数组
var sumDouble = fourDouble + anotherDouble
sumDouble += [15.1]
print("sumDouble:
\(sumDouble)")
//数据项的值和索引值
for (index, value)
in sumDouble.enumerate() {
print("Item
\(String(index +
1)))
\(value)")
}
sumDouble.insert(19.9, atIndex:
0)
print("sumDouble:
\(sumDouble)")
//多重返回值
// let bounds = minAndMax(sumDouble)
// print("minandMax min:\(bounds?.min) max:\(bounds?.max)")
let doubleArray = [Double]()
let bounds =
minAndMax(doubleArray)
print("minandMax min:\(bounds?.min) max:\(bounds?.max)")
//6.输入输出函数
var tempa =
15
var tempb =
10
//输入输出函数
在定义的时候不能被定义成inout 它将不能被var let
标识
//在传入
参数时 将在参数前加上&
表示可以在函数内更改
swapInts(&tempa, &tempb)
print("tempa :
\(tempa), tempb :
\(tempb)")
//7.函数类型
/*
var mathFunction: (Int, Int) -> Int = addTwoInts
可以用mathFuction来调用被赋值的函数
*/
//8.函数类型作为返回类型 ->
后写一个完整的函数类型
let currentValue =
3
let moveNearerToZero =
chooseStep(currentValue >
0)
print("moveNearToZero :
\(moveNearerToZero)")
//可选绑定
判断可选类是否包含值 如果包含就赋值给一个林市场量或者变量
}
//2.默认参数
//忽略外部参数名 (利用一个 _
代替外部参数名) 因为第一个参数默认忽略其外部参数名
func someFunction(parameterWithDefault:
Int = 10,
_ parameter2: String =
"string1") {
print(parameterWithDefault, parameter2);
}
//3.可变参数
//->Double 返回值为double
名叫做numbers的[Double]
func arithmeticMean(numbers:Double...)->Double {
var total:Double =
0
for number1
in numbers {
total += number1
}
return total /
Double(numbers.count)
}
//4.无返回值函数
//关于 string的characters
/*
string类型是值类型
创建了新的字符串,进行常量变量复制操作或者在函数、方法中传递,会进行值拷贝
string类型表示特定序列的字符值得集合
*/
func unReturnFouction(person:
String) {
print("GoodBye,
\(person)")
//\(person)
插入字符串面量的每一项都被包裹在以反斜线为前缀的圆括号中
//您插值字符串中写在括号中的表达式不能包含非转义双引号 (")
和反斜杠 (\),并且不能包含回车或换行符。
print(person.characters.count)
}
//5.多重返回值函数
//确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析(forced
unwrapping)
//可选元组返回类型
如果函数返回的元组类型 可能在整个元祖中含有没有值
就使用可选元组 (Int, Int)?
// func minAndMax(array:[Double]) -> (min: Double, max:Double) {
//
// var currentMin = array[0]
// var currentMax = array[0]
//
// for value in array[1..<array.count] {
//
// if value < currentMin {
// currentMin = value
// }
//
// if value > currentMax {
// currentMax = value
// }
// }
//
// return (currentMin, currentMax)
// }
func minAndMax(array:[Double]) -> (min:
Double, max:Double)? {
if array.isEmpty {
return
nil
}
var currentMin = array[0]
var currentMax = array[0]
for value
in array[1..<array.count] {
if value < currentMin {
currentMin = value
}
if value > currentMax {
currentMax = value
}
}
return (currentMin, currentMax)
}
//6.输入输出参数
func swapInts(inout a:
Int, inout
_ b: Int) {
let temporaryA = a
a = b
b = temporaryA
}
//8.返回值是函数的类型
func stepOne(input:
Int) -> Int {
return input +
1
}
func stepTwo(input :
Int) ->Int {
return input -
1
}
func chooseStep(backwards:
Bool) -> (Int) ->Int {
return backwards ?
stepOne : stepTwo
}
override
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
记录一下。。 自己一个人学很没动力。。。 现在脑子是个浆糊。。打算今天先看到这里。。 (以为今天起码了解了一点语法,应该能看懂一点项目了。。 刚刚瞥了一眼。。 这是写iOS的吗?? 我咋一点都看不懂)。。好吧。。 我需要努力努力。
import UIKit
class ViewController:
UIViewController {
override
func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor =
UIColor.redColor()
var stringValue:String
stringValue = "stringValue"
var stringValue2 =
"string2"
stringValue2 = "string3"
//1.输出
print(stringValue, terminator:"")//不会换行
因为terminator将默认参数值
更改了
print(stringValue2)
//2.默认参数值
someFunction()
// someFunction(15, parameter2: "string4")//此处对应的 func someFunction(parameterWithDefault: Int = 10, parameter2: String = "string1")
//3.忽略外部参数名 (利用一个 _
代替外部参数名)
someFunction(12,
"aa")
//4.无返回值
没有返回值得函数都会被返回 特殊的值 void
是一个空元祖类型
unReturnFouction("Anna")
//5.多重返回值
var someInts = [Int]()
print("someInt is of type [Int] with
\(someInts.count)")
someInts.append(3)//向数组中添加数据
print("[Int] with
\(someInts)")
//创建默认值的数组
var fourDouble = [Double](count:
3, repeatedValue: 0.0)
fourDouble.append(14.1)
print("fourDouble
\(fourDouble)")
//通过两个数组创建一个数组
var anotherDouble = [Double](count:
3, repeatedValue: 1.0)
anotherDouble += [16.1]
print("anotherDouble:
\(anotherDouble)")
//和数组
var sumDouble = fourDouble + anotherDouble
sumDouble += [15.1]
print("sumDouble:
\(sumDouble)")
//数据项的值和索引值
for (index, value)
in sumDouble.enumerate() {
print("Item
\(String(index +
1)))
\(value)")
}
sumDouble.insert(19.9, atIndex:
0)
print("sumDouble:
\(sumDouble)")
//多重返回值
// let bounds = minAndMax(sumDouble)
// print("minandMax min:\(bounds?.min) max:\(bounds?.max)")
let doubleArray = [Double]()
let bounds =
minAndMax(doubleArray)
print("minandMax min:\(bounds?.min) max:\(bounds?.max)")
//6.输入输出函数
var tempa =
15
var tempb =
10
//输入输出函数
在定义的时候不能被定义成inout 它将不能被var let
标识
//在传入
参数时 将在参数前加上&
表示可以在函数内更改
swapInts(&tempa, &tempb)
print("tempa :
\(tempa), tempb :
\(tempb)")
//7.函数类型
/*
var mathFunction: (Int, Int) -> Int = addTwoInts
可以用mathFuction来调用被赋值的函数
*/
//8.函数类型作为返回类型 ->
后写一个完整的函数类型
let currentValue =
3
let moveNearerToZero =
chooseStep(currentValue >
0)
print("moveNearToZero :
\(moveNearerToZero)")
//可选绑定
判断可选类是否包含值 如果包含就赋值给一个林市场量或者变量
}
//2.默认参数
//忽略外部参数名 (利用一个 _
代替外部参数名) 因为第一个参数默认忽略其外部参数名
func someFunction(parameterWithDefault:
Int = 10,
_ parameter2: String =
"string1") {
print(parameterWithDefault, parameter2);
}
//3.可变参数
//->Double 返回值为double
名叫做numbers的[Double]
func arithmeticMean(numbers:Double...)->Double {
var total:Double =
0
for number1
in numbers {
total += number1
}
return total /
Double(numbers.count)
}
//4.无返回值函数
//关于 string的characters
/*
string类型是值类型
创建了新的字符串,进行常量变量复制操作或者在函数、方法中传递,会进行值拷贝
string类型表示特定序列的字符值得集合
*/
func unReturnFouction(person:
String) {
print("GoodBye,
\(person)")
//\(person)
插入字符串面量的每一项都被包裹在以反斜线为前缀的圆括号中
//您插值字符串中写在括号中的表达式不能包含非转义双引号 (")
和反斜杠 (\),并且不能包含回车或换行符。
print(person.characters.count)
}
//5.多重返回值函数
//确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个惊叹号表示“我知道这个可选有值,请使用它。”这被称为可选值的强制解析(forced
unwrapping)
//可选元组返回类型
如果函数返回的元组类型 可能在整个元祖中含有没有值
就使用可选元组 (Int, Int)?
// func minAndMax(array:[Double]) -> (min: Double, max:Double) {
//
// var currentMin = array[0]
// var currentMax = array[0]
//
// for value in array[1..<array.count] {
//
// if value < currentMin {
// currentMin = value
// }
//
// if value > currentMax {
// currentMax = value
// }
// }
//
// return (currentMin, currentMax)
// }
func minAndMax(array:[Double]) -> (min:
Double, max:Double)? {
if array.isEmpty {
return
nil
}
var currentMin = array[0]
var currentMax = array[0]
for value
in array[1..<array.count] {
if value < currentMin {
currentMin = value
}
if value > currentMax {
currentMax = value
}
}
return (currentMin, currentMax)
}
//6.输入输出参数
func swapInts(inout a:
Int, inout
_ b: Int) {
let temporaryA = a
a = b
b = temporaryA
}
//8.返回值是函数的类型
func stepOne(input:
Int) -> Int {
return input +
1
}
func stepTwo(input :
Int) ->Int {
return input -
1
}
func chooseStep(backwards:
Bool) -> (Int) ->Int {
return backwards ?
stepOne : stepTwo
}
override
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift中定义二维数组的方法及遍历方法示例
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- 简单分析Swift语言的一些基本特征
- Swift与C语言指针结合使用实例