swift(一)天
来源:互联网 发布:算法工程师要加班么 编辑:程序博客网 时间:2024/04/26 19:05
由于公司项目都是用swift写的。。 菜鸟一枚的我开始自学swift
记录一下。。 自己一个人学很没动力。。。 现在脑子是个浆糊。。打算今天先看到这里。。 (以为今天起码了解了一点语法,应该能看懂一点项目了。。 刚刚瞥了一眼。。 这是写iOS的吗?? 我咋一点都看不懂)。。好吧。。 我需要努力努力。
import UIKit
class ViewController: UIViewController {
overridefunc 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 number1in 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 {
returnnil
}
var currentMin = array[0]
var currentMax = array[0]
for valuein 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
}
overridefunc didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
- swift(一)天
- swift (一)
- swift学习总结一
- Swift--基本数据类型(一)
- Swift初探一
- Swift学习一
- swift容器类一
- Swift 基础语法一
- swift特性一
- Swift 基础部分(一)
- Swift基础学习一
- Swift学习一
- Swift初体验 (一)
- Swift--数组(一)
- Swift基础一(代码)
- Swift学习一
- 一、Swift 语法概述
- Swift(一)
- 小胖游海南(Mar,2010)-三亚,博鳌,海口
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
- Python里的*args和**kwargs是什么?
- 即时内部聊天程序——MessageIO
- Unity3D占用内存太大的解决方法
- swift(一)天
- eclipse maven depoly项目到nexus
- Sublime Text 3 装了Anaconda 写Python代码出现框框的解决办法
- sublime 编辑器安装
- Redis --- Jedis 使用简单示例
- 黑色白色版本·listview的背景和xml配置(如果有增加的请完善附件)
- 即时内部聊天程序——注册
- 添加三方管理工具cocoaPods后添加三方
- Android -------GridView属性集合