Swift的笔记和参考

好久没来了,趁着新语言Swift发布,继续钻研中!

Create Class 创建类 (重载效果)

// Create Class 创建类
class MyClass {// Properties 成员变量
    init() {// Constructor 构造函数
    }// Method 成员方法
    func doIt() {println("doIt")}func doIt() -> Int {return 0}func doIt(a:Int) -> Int {return a}func doIt(a:Int, b:Int) -> Int {return a + b}func doIt() -> String {return ""}func doIt(a:String) -> String {return a}func doIt(a:String, b:String) -> String {return a + b}}// Create / Using an Instance 创建 / 使用 一个实例
var a = MyClass()
a.doIt("Wang ", b: "Zhipeng")

 

Enums 枚举

// Enums 枚举
enum ComcSoftType: Int {case DevelopmentEngineer = 1case TestEngineer = 2}var myType = ComcSoftType.DevelopmentEngineer

 

Declaring Variables 变量的声明 (可选变量)

// Declaring Variables 变量的声明
var mutableDouble:Double = 1.0
mutableDouble = 2.0let constantDouble:Double = 1.0
//constantDouble = 2.0 Error 错误

var autoDouble = 1.0// Optional Value 可选变量 (新机制)
var optionDouble:Double? //此刻 optionDouble 根本没有分配内存,对其取地址: &optionDouble 为NULL
optionDouble = 1.0 //这时候开始 optionDouble 才会开始分配内存if let defineDouble = optionDouble {println("已经分配内存")
}
else {println("没有分配内存")
}

 

Control Flow 控制流

// Control Flow 控制流
var condition = true
if condition {println("正确")
}
else {println("错误")
}var val = "Four"
switch val {case "One":"One"case "Two", "Three":"Two, Three"default:"default"
}// omits upper value, use ... to include  省略了上限值,使用 ... 包括
for i in 0..3 {println("i = \(i)")
}for var j = 0; j < 3; ++j {println("j = \(j)")
}// While
var n = 2
while n < 100 {n = n * 2
}
println(n)var m = 2
do {m = m * 2
} while m < 100
println(m)

 

String Quick Examples 字符串的例子

// String Quick Examples 字符串的例子
var firstName = "Zhipeng"
var lastName = "Wang"
var helloString = "Hello, \(lastName) \(firstName)"var tipString = "2499"
var tipInt = tipString.toInt()extension Double {init (string:String) {self = Double(string.bridgeToObjectiveC().doubleValue)}
}
tipString = "24.99"
var tipDouble = Double(string:tipString)

 

Array Quick Examples 数组的例子

// Array Quick Examples 数组的例子
var person1 = "One"
var person2 = "Two"
var array:String[] = [person1, person2]
array += "Three"
for person in array {println("person: \(person)")
}
var personTwo = array[1]
println("personTwo: \(personTwo)")

 

Dictionary Quick Examples 字典的例子 (泛型效果)

// Dictionary Quick Examples 字典的例子
var dic:Dictionary<String, String> = ["One": "1","Two": "2","Three": "3"]
dic["Three"] = "4" // Update Three
dic["One"] = nil // Delete One
for(key, value) in dic {println("key: \(key), value: \(value)")
}

 

Function 函数

// Function 函数
func getPirces() -> (Double, Double, Double) {return (1.1, 1.2, 1.3) // tuple 元组
}
// 取出元组
var (one, two, three) = getPirces()
println("One = \(one), Two = \(two), Three = \(three)")func getSum(numbers:Int...) -> Int {var sum = 0for number in numbers {sum += number}return sum
}
getSum()
getSum(1, 3, 5, 7, 9)

 

函数嵌套

// 函数嵌套
func nestedFunction() -> Int {var x = 0//
    func add() {x += 1}//
    add()return x
}

 

函数传递

// 函数传递
func makeIncrementer() -> (Int -> Int) {func addOne(number:Int) -> Int {return number + 1}return addOne
}var increment = makeIncrementer()
increment(1)func makeIncrementer2() -> ((String, String) -> String) {func and(a:String, b:String) -> String {return a + b}return and
}
var increment2 = makeIncrementer2()
increment2("Wang ", "zhieng")func lessThanOne(number:Int) -> Bool {return number < 1
}
func makeIncrementer3(list:Int[], condition:Int -> Bool) -> Bool {for number in list {if condition(number) {return true}}return false
}
makeIncrementer3([1,2,3,4,5], lessThanOne)

 

 Extends 继承 (多态效果)

// Extends 继承 (多态效果)
println("======================= Extends 继承")
class People {// Eat 吃
    func eat() {println("")}// Sleep 睡
    func sleep() {println("")}// Work 工作
    func work() {println("工作")}// Said 说
    func said() {println("我是人")}
}class Chinese:People {// Said 说override func said() {println("我是中国人")}
}class Americans:People {// Said 说override func said() {println("我是美国人")}
}class Alien {// Eat 吃
    func unknown() {println("外星人")}
}// 不支持多继承
//class futureGenerations:Chinese, Americans { // Multiple inheritance from classes 'Chinese' and 'Americans'
//    // Said 说
//    override func said() {
//        println("我是中国人和美国人的后代")
//    }
//}// 多态 必要条件:1.继承 2.重写 3.父类引用指向子类对象
var people = People()
people.said()
people = Chinese()
people.said()
people = Americans()
people.said()
//people = Alien() Error 'Alien' is not convertible to 'People'
//people.said()

var chinese = Chinese()
chinese.said()var americans = Americans()
americans.said()

 

转载于:https://www.cnblogs.com/thefeelingofsimple/p/3768725.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java正则过滤js_JS/Java正则表达式验证

校验密码&#xff1a;6-15位var pwdreg /^[0-9A-Za-z_,.!#$%^*]{6,15}$/;pwdreg.test(phonenum)校验手机号var mobilereg /^0?1[3|4|5|7|8][0-9]\d{8}$/;mobilereg.test(phonenum)只能输入数字(年龄大小)只能输入中文、英文、数字、空格(微信中&#xff0c;关键字&#xff0…

UE4中的字符串转换

虚幻4学习---UE4中的字符串转换(文章来自于UE4官方文档) String Conversions: FString To FName FString To Int32 Float To FString FArrayReaderPtr To FString TArray<uint8> To FString FString To char * --- ( TCHAR_TO_ANSI() ) FString To TCHAR * FString …

DeDeCMS后台批量修改替换sql语句大全

有时候后台文章内容、标题或者锚文本出错&#xff0c;需要修改批量修改&#xff0c;那么就需要用dedecms的sql语句进行批量修改了。 利用dedecms后台SQL命令行工具批量修改内容&#xff0c;路径和超链接等信息。语句 DEDECMS SQL命令批量替换1.更改文章中的内容update dede_add…

jpa mysql乐观锁_【快学springboot】8.JPA乐观锁OptimisticLocking

介绍当涉及到企业应用程序时&#xff0c;正确地管理对数据库的并发访问是至关重要的。为此&#xff0c;我们可以使用Java Persistence API提供的乐观锁定机制。它导致在同一时间对同一数据进行多次更新不会相互干扰。为了使用OptimisticLocking&#xff0c;我们需要一个实体(En…

UE4 连接自定义服务器

UE4 dedicated server是一个很好的游戏服务器,但是对于大厅和聊天服务器来说,我们要自行开发,通过UE4的socket组建很方便的和其他服务器建立连接 创建Socket FSocket* Socket ISocketSubsystem::Get(PLATFORM_SOCKETSUBSYSTEM)->CreateSocket(NAME_Stream, TEXT("de…

学习笔记-java编程-交通灯管理器设计流程。

先抛出需求&#xff1a; 异步随机生成按照各个路线行驶的车辆。例如&#xff1a; 由南向而来去往北向的车辆 ---- 直行车辆 由西向而来去往南向的车辆 ---- 右转车辆 由东向而来去往南向的车辆 ---- 左转车辆 。。。 信号灯忽略黄灯&#xff0c;只考虑红灯和绿灯。应考虑左转车…

php mysql 库存变负数_php解决秒杀并发入库导致的库存负数

我们知道数据库处理sql是一条条处理的&#xff0c;假设购买商品的流程是这样的&#xff1a;sql1:查询商品库存1 if(库存数量 > 0)2 {3 //生成订单4 //库存-15 >当没有并发时&#xff0c;上面的流程看起来是如此完美&#xff0c;假设同时两个人下单&#xff0c;而库存只有…

Codeforces Testing Round #10 A. Forgotten Episode

水题&#xff0c;注意数据范围 #include <iostream> using namespace std;int main(){long long n,a;cin >> n;long long sum (n*(n1))>>1;for(int i 0 ; i < n-1 ; i){cin >>a;sum -a;}cout<<sum<<endl; } 转载于:https://www.cnblo…

UE4--多线程的实现方式

首先查阅了WIKI中能找到Rama大神的两篇文章&#xff0c;讲了两个开线程的方式&#xff1a; https://wiki.unrealengine.com/Multi-Threading:_Task_Graph_System https://wiki.unrealengine.com/Multi-Threading:_How_to_Create_Threads_in_UE4 TaskGraph与FRunnable的比较 一…

python if else格式_Python if else条件语句详解

我们看到的代码都是顺序执行的&#xff0c;也就是先执行第1条语句&#xff0c;然后是第2条、第3条……一直到最后一条语句&#xff0c;这称为顺序结构。但是对于很多情况&#xff0c;顺序结构的代码是远远不够的&#xff0c;比如一个程序限制了只能成年人使用&#xff0c;儿童因…

UE4 HTC VIVE - 番外篇 - 局域网联机(一)

--------------------引擎环境配置文件修改与项目在线模式启动修改--------------------1&#xff09;我们就直接用默认名创建一个第三人称项目Paste_Image.png2&#xff09;右键资源栏&#xff0c;创建一个新的C类创建一个C类选择不继承任何UE提供的基类3&#xff09;打开【解…

UIImageView 圆角

UIImageView *image [[UIImageView alloc]init]; image.layer.cornerRadius 10.0;//如果想变圆形&#xff0c;设置这个值为宽度的一半 image.layer.masksToBounds YES;转载于:https://www.cnblogs.com/qianyindichang/p/3779823.html

java 参数 string_java(String和StringBuffer分别作为参数传递)

package com.day8.StringBuffer;public class Demo7StringBuffer {/***常见对象(String和StringBuffer分别作为参数传递)* A:形式参数问题* String作为参数传递* StringBuffer作为参数传递* B:案例演示* String和StringBuffer分别作为参数传递问题*( 基本数据类型的值传递&…

UE4 HTC VIVE - 番外篇 - 局域网联机(二)

开始之前先说一下网游中服务器与客户端的大致关系&#xff1a;网络游戏中各段关系图客户端职责&#xff1a;1&#xff09;接收玩家的输入翻译得到【玩家指令】上传服务器&#xff1b;2&#xff09;接收服务器下发的【游戏指令】并将其实现服务器职责&#xff1a;1&#xff09;接…

启动文件、简单的消息框

C中打开文件的方法。 1.system&#xff08;&#xff09;; 函数原型&#xff1a; int system(char *command); 作用&#xff1a;发出一个DOS命令。 特点&#xff1a;该函数是同步的&#xff0c;不灵活。只是能够改为system("start XXX"); 2.WinExec&#xff08;&#…

UE4 HTC VIVE - 番外篇 - 局域网联机三

环境设置和检测1.打开引擎下的在线调试引擎在线模式开启2.打开项目的在线调试项目在线模式开启3.检查机器网段我们需要对每台要加入局域网的机器都进行网段检测&#xff0c;这是能客户端能找到主机广播的前提&#xff0c;否则无法搜到主机Windows键R键输入CMD输入ipconfig检查I…

java异常判断_Java异常退出条件的判断示例代码

无论是功能性代码还是算法性代码&#xff0c;程序都是一系列流程的合集既然是流程就分为&#xff1a;一般流程和异常流程&#xff1b;一般流程保证了基本功能&#xff1b;异常流程则是对程序稳定性的保证&#xff0c;不能因为一些非法输入&#xff0c;项目就挂了&#xff1b;注…

POJ 3225 - 区间

待整理。 转载于:https://www.cnblogs.com/e0e1e/p/poj_3225.html

UE4 HTC VIVE 多人联机

1. editor的VR模式不支持网络&#xff0c;所以在VR模式下没法调试多人联机程序 2. editor的standalone模式&#xff0c;引擎的源码里面把VR模式关闭了&#xff0c;所以需要修改引擎源码 3.可以在命令行下打开VR模式

关于64位Linux配置android开发环境出现 No such file or directory

前几天在64位系统上部署android开发环境的时候出现了这种问题 /aapt: No such file or directory 通过谷老师&#xff0c;知道原理android SDK里面的程序全是32位的&#xff0c;没有64位的。不知道为啥要写个x64&#xff0c; 我们仅仅要安装一下32位的执行库即可了&#xff0c;…