Swift 基础部分

news/2024/7/20 15:44:22 标签: swift, 移动开发, 内存管理

  听说过 swift 语言挺好玩的 那么,我们就开始 Swift 吧

  首先,我们学习一门语言,我们应该先要去了解他的背景,它是怎么出现的,通过查找资料,我了解到的

  Swift 是一种新的编程语言,用于编写 iOS,OS X 和 watchOS应用程序。Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣。Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发。

  Swift 的开发从很久之前就开始了。为了给 Swift 打好基础,苹果公司改进了编译器,调试器和框架结构。我们使用自动引用计数(Automatic Reference Counting, ARC)来简化内存管理。我们在 Foundation 和 Cocoa 的基础上构建框架栈使其完全现代化和标准化。 Objective-C 本身支持块、集合语法和模块,所以框架可以轻松支持现代编程语言技术。正是得益于这些基础工作,我们现在才能发布这样一个用于未来苹果软件开发的新语言。

  Objective-C 开发者对 Swift 并不会感到陌生。它采用了 Objective-C 的命名参数以及动态对象模型,可以无缝对接到现有的 Cocoa 框架,并且可以兼容 Objective-C 代码。在此基础之上,Swift 还有许多新特性并且支持过程式编程和面向对象编程。

  Swift 对于初学者来说也很友好。它是第一个既满足工业标准又像脚本语言一样充满表现力和趣味的脚本语言。它支持代码预览,这个革命性的特性可以允许程序员在不编译和运行应用程序的前提下运行 Swift 代码并实时查看结果。

  Swift 将现代编程语言的精华和苹果工程师文化的智慧结合了起来。编译器对性能进行了优化,编程语言对开发进行了优化,两者互不干扰,鱼与熊掌兼得。Swift 既可以用于开发 “hello, world” 这样的小程序,也可以用于开发一套完整的操作系统。所有的这些特性让 Swift 对于开发者和苹果来说都是一项值得的投资。

  Swift 是编写 iOS,OS X 和 watchOS应用的极佳手段,并将伴随着新的特性和功能持续演进。我们对 Swift 充满信心,你还在等什么!

  这些我取自于http://wiki.jikexueyuan.com/project/swift/ 想要学习的朋友也可以去看看

 

 

  好了 ,我们开始学习吧

  1.常量和变量的声明使用

  let 是常量声明

  var 是变量声明

let a = 10
var c = 10

  举个例子

  如果你要是用 let声明一个常量,那么它是不被修改的,但是用 var 的话就可以了 比如

var b = 10
b = 12

 

这是被允许的

  有一个比较好玩的地方就是swift 可以使用 Unicode字符集命名变量

  举个例子

let ? = 10
let ? = ?

 

 看到没?这样是可以的

  我们怎么才能在控制台看到呢?

  我们就要了解他的输出函数 (其实和 C语言差不多)

print(a)
print(a)
print(?)

 

  2.类型

  那么, swift 有哪些类型呢? -> 有  Int Double Float String Character Bool这些

  如果你给一个声明的变量 类型的话

  他的格式是这样的:

var person: String = "你好"

 

 还有一点需要注意:在 swift中 Bool 类型 是用 true false 表示的  

  在 swift 中 nil 和我们所熟悉的 Objective-c 不一样的  在swift 中 nil 是一种类型 ,他声明的属性是不能为 nil 的 。 如果你一定要这么做的话可以在声明变量的时候加一个"?"来表示他可以为空  

var personName: String? = "你好"
personName = nil

 

   3.注释

//这是注释

/*
这个是多行注释
*/

/*
在 OC 中我们用
#param  mark 
但是在 swift 中是这样的

// MARK:
// MARK: 这样就可以了

*/

 

 

 

  4.断言

let age = -3
assert(age >= 0, "A person's age cannot be less than zero")

//这样 程序就会停止在这里了

/*
但是需要注意的是:
当代码使用优化编译的时候,断言将会被禁用,例如在 Xcode 中,使用默认的 target Release 配置选项来 build 时,断言会被禁用。
*/

 

   5.数组

  什么一个数组 有一下几种方法:

//声明一个数组
//1.
var array1 = [1,2,3,4,5]
//2.
var array2: Array<Int> = [1,2,3,4,5]
//3.
var array3: [Int] = [1,2,3,4,5]
/*
这里的 array2 和 array3 声明是一样的
*/

 

 当然 声明数组 也可以是混合的数组 就是这样的

//这是一个混合的数组
var array4 = ["a",1,,"b",2,"c",3,"d",4]

 

  注意:数组的元素类型一旦确定,就无法修改了 

接下来就看看 数组的 增删改查

//怎么添加一个数组元素
array1.append(6)
print(array1)
//在某个位置能加
array1.insert(0, atIndex: 0)
print(array1)

//
array1.removeAtIndex(5)
print(array1)
array1.removeAll()
print(array1)

//改 / c查
array3[0] = 10
print(array3[0])
array3[0] = array3[2] - array3[2]
print(array3[0])

 

 数组的排列也是有方法

/排
print(array4.sort(>))

 

这样 就能数组排列了,是不是简单啊 我可是认为挺简单的呢!

转载于:https://www.cnblogs.com/yxfBlogs/p/4969645.html


http://www.niftyadmin.cn/n/1449911.html

相关文章

Codeforces 453C Little Pony and Summer Sun Celebration(构造)

题目链接&#xff1a;Codeforces 453 Little Pony and Summer Sun Celebration 题目大意&#xff1a;n个节点&#xff0c;m条边&#xff0c;然后m行给定边&#xff0c;最后一行表示每个节点需要进过的次数为奇数次还是偶数次。 解题思路&#xff1a;构造&#xff0c;任意从一个…

php查看变量原始值,web开发中怎样检测原始值

这次给大家带来web开发中怎样检测原始值&#xff0c;web开发中检测原始值的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。在JS中有5种原始类型&#xff1a;字符串、数字、布尔值、null和undefined。如果你希望一个值是字符串、数字、布尔值或者undefi…

python qq群发消息_python qq发消息

# 原理是先将需要发送的文本放到剪贴板中&#xff0c;然后将剪贴板内容发送到qq窗口# 之后模拟按键发送enter键发送消息import win32guiimport win32conimport win32clipboard as wimport timedef getText():"""获取剪贴板文本"""w.OpenClipboar…

项目管理:代码仓库管理、项目进度管理与持续集成工具介绍

1. 代码仓库管理&#xff1a;gitlab gitlab是一个利用 Ruby on Rails 开发的开源应用程序&#xff0c;实现一个自托管的Git项目仓库&#xff0c;可通过Web界面进行访问公开的或者私人项目。 它拥有与GitHub类似的功能&#xff0c;能够浏览源代码&#xff0c;管理缺陷和注释。…

day4 python学习随笔

map reduce filter使用map 遍历序列&#xff0c;对序列中每个元素进行操作&#xff0c;最终获取新的序列例1li [11, 22, 33]new_list map(lambda a: a 100, li)例2li [11, 22, 33] sl [1, 2, 3] new_list map(lambda a, b: a b, li, sl)reduce 对于序列中的元素进行筛选…

七夕节有病毒入侵 慎对QQ好友送玫瑰(转)

七夕节被称为中国的情人节&#xff0c;不少人都有在节日里通过网络聊天工具互相问候的习惯。然而&#xff0c;在今年七夕来临前&#xff0c;如果您的QQ好友向您送玫瑰&#xff0c;请千万谨慎&#xff0c;因为那很有可能是个病毒。  据了解&#xff0c;这个名为“QQ消息发送机…

win7 连接oracle8,Win7下Node.js连接oracle数据库

最近一个项目需要使用Nodejs连接oracle数据库,在网上查了很久,按照网上的做法一直都无法成功,报错信息是node-gyp rebuild相关的,最后经过不断试验,发现手动编译后可以成功.首先需要安装node-oracle需要的依赖,包括python2.7(选择将其加入环境变量), oracle的instantclient_12_…

educoder实训平台python基础综合测试答案_智慧职教mooc2020Python程序设计基础章节测试答案...

[判断题] 风口小套主要是受到渣铁与风口的直接接触而烧坏的。()[单选] 汽化冷却的冷却介质是()。[单选] 高炉煤气的燃点是()℃。[单选] 冷却设备破损后&#xff0c;关闭水源主要是为了()。[填空题] 现代高炉的内型由()、炉身、炉腰、炉腹和炉缸五段组成。[填空题] 立方斗的体积…