The Swift Programming Language 中文翻译版

news/2024/7/20 13:02:12 标签: swift, 移动开发, 内存管理

原文(http://www.cnblogs.com/lkvt/p/3765349.html)

一、Welcome to Swift

1.关于Swift

  Swift是一种用于iOS和OS X应用的全新编程语言,它建立在最好的C和Objective-C语言中。而且没有C语言的兼容性限制。Swift採用安全的编程模式。添加了现代功能使编程更easy、更灵活、更有趣。

Swift背靠成熟且备受宠爱的Cocoa 和 Cocoa Touch框架的支持,这是一个又一次构想软件开发的机会。

  Swift经过了数年的酝酿,Apple通过改进现有的编译器、调试器和框架结构奠定了Swift的基础,并通过Automatic Reference Counting(ARC)简化了内存管理。Swift的框架建立在坚实的Foundation和Cocoa上。已实现现代化和彻底标准化。 Objective-C本身已经逐步发展到到支持blocks、 collection literals 和modules,使框架採用不中断的现代语言技术。感谢这个基础,我们能够为Apple软件发展的未来引入一种新语言。

  对Objective-C开发人员来说Swift看起来非常熟悉,它具有Objective-C命名參数的可读性和动态对象模型的力量。提供了无缝接入现有Cocoa框架和与Objective-C混编的能力。建立在这个共同点上。Swift引入了很多新的特性、统一的程序和面向对象的语言部分。

   Swift对于新程序猿是友好的。作为一个具有表现力和娱乐性的脚本语言,它是第一个获得工业品质的系统编程语言。

它支持playgrounds,一个同意程序猿调试Swift代码并马上看到结果。而无需重复编译执行程序的新功能。

   Swift结合了最好的现代语言思维和智慧 - 来自广大的苹果project师文化。编译器针对性能进行了优化。语言也进行了发展优化,而无需不论什么牺牲。它的设计从“Hello World”扩展到整个操作系统,这一切使得Swift对于开发人员和Apple是一个有意义的投资。

   Swift以极好的方式来编写的iOS和OS X应用。并将继续发展与新特性和功能。

Swift充满野心,我们已经迫不及待看你能用它创造什么。

 

2.Swift概览

  传统建议新语言的第一个程序应该打印“Hello, World”在屏幕上,但在Swift里,这仅仅须要一行来完毕。

       println("Hello,World")

  假设你在C或Objective-C语言编写过代码。这个语法看起来会非常熟悉 —— 在Swift里,这行代码是一个完整的程序,你不须要为input/output或字符串处理等功能导入一个单独的库。写在全球范围的代码都作为函数的入口点。所以你并不须要一个main函数,也不必在每一个语句的末尾写分号。

  这次概览通过展示怎样完毕各种程序任务来给你足够的信息開始编写Swift代码。假设你不明确的地方,不要操心,这个概览里的一切细节都会在本书后面详解。

   注:为获得最佳体验。在Xcode里把本章作为一个playground打开,playground同意你编辑代码清单,并马上看到结果。

 

2.1.简单值

  使用let创建一个常量,var创建一个变量。一个常量的值并不须要在编译时是已知的,但你必须给它分配一个值一次。这意味着您能够使用常量来命名一个你决定在很多地方使用的值。

  var myVariable = 42

  myVariable = 50

  let myConstant  = 42

  常量或变量必须有同样的类型。你要分配给它的值。然而,你并不总是必须明白写出类型。提供一个值,当您创建一个常量或变量能够让编译器判断出其类型。在上面的演示样例中,编译器判断出myVariable是整数,由于它的初始值是一个整数。

 

  假设初始值没有提供足够的信息(或者假设没有初始值)。能够在改变后制定类型,用冒号隔开。

  let implicitInterger = 70

  let implicitDouble =70.0

  let explicitDouble: Double = 70

  试验:创建一个常数,明白为float类型。而且值为4

 

  值永远不会绝对转换为还有一种类型。

假设你须要一个值转换为不同的类型,明白地创建一个所需类型的实例。

  let label = "The Width Is"

  let width = 94

  let widthLable = lable + String(width)

  试验:尝试从最后一行除去String的转换。你得到了什么错误?

 

  另一个更简单的方法包括字符串值:把值写在括号里 ,并在括号前写一个反斜线(\)。比如:

  let apples = 3

  let oranges = 5

  let appleSummary = "I hava \(apples) apples."

  let fruitSummary = "I have \(appel + oranges) pieces of fruit."

  试验:使用(\),在一个string里包括一个浮点计算。并在一个greeting里包括某个人的名字。

 

  使用方括号([])创建数组和字典,并在括号里写出index和key来訪问它们的元素。

   var shoppingList = ["catfish", "water", "tulips", "blue paint"]

   shoppingList[1] = "bottle of water"

  

   var occupations = [

     "Malcolm": "Captain",

     "Kaylee": "Mechanic",

       ]

   occupations["Jayne"] = "Public Relations"

  要创建一个空数组或字典。使用初始化语法。

   let emptArry = String[]()

   let emptDictionary = Dictionary<String, Float>()

 

  假设类型信息能够判断,你能够写一个空数组为[]和一个空字典为[;] ——比如,当你设置一个变量的新值或參数传递给函数。

  shoppingList = [] 




itunes链接:https://itunes.apple.com/us/book ... e/id881256329?

mt=11 
epub版本号下载:http://pan.baidu.com/s/1ntJnbc9 . 鐗涗汉浜戦泦,涓€浜╀笁鍒嗗湴
calibre下载(可在PC看epub):http://calibre-ebook.com/download 

转载于:https://www.cnblogs.com/liguangsunls/p/7058558.html


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

相关文章

Linux C 线程

1. 没有pthread_detach导致内存泄漏 #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <sys/time.h> void doprint(void *arg){ printf("arg%d\n",*(int *)arg); pthread_detach(pthread_self()); } voi…

[转载]Java在线打开PDF文档

步骤一&#xff1a;&#xff08;涉及到的工具&#xff09; 访问&#xff1a;http://www.zhuozhengsoft.com/dowm/&#xff0c;从官网下载PageOffice for Java。 步骤二&#xff1a;(配置工程) 1. 解压PageOffice 开发包&#xff0c;打开“集成文件”目录&#xff0c;拷贝“WEB-…

佐治亚理工:计算机专业的课,助教当然要用AI

在佐治亚理工学院交互计算学院上课的学生们被学院欺骗&#xff0c;以为他们那名为Jill Watson的助教是一名真正的人类。不过就在这位虚拟助教回答问题的正确率达到百分之九十七的时候&#xff0c;你又怎么能为此而责备他们呢&#xff1f; 现在&#xff0c;有把握不代表一定正确…

二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比

转载自 https://blog.csdn.net/z702143700/article/details/49079107前言&#xff1a;BST、AVL、RBT、B-tree都是动态结构&#xff0c;查找时间基本都在O(longN)数量级上。下面做出详细对比。1. 二叉查找树 (Binary Search Tree)概念二叉查找树又称二叉搜索树&#xff0c;二叉…

google colab 下载数据集、挂载自己的google drive

下载数据集&#xff1a; from google.colab import files files.download(a.csv)挂载google drive from google.colab import drive drive.mount(/content/gdrive)更改运行目录 import os os.chdir("/content/gdrive/My Drive/Colab Notebooks")或者 import path…

public protected default private

&#xff08;1&#xff09;对于public修饰符&#xff0c;它具有最大的访问权限&#xff0c;可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况&#xff0c;也就是对象或类对外的一种接口的形式。 &#xff08;2&#xff09;对于protected修饰符&#xff…

Html5 web 本地存储 (localStorage、sessionStorage)

HTML5 提供了两种在客户端存储数据的新方法localStorage,sessionStorage sessionStorage&#xff08;临时存储&#xff09; &#xff1a;为每一个数据源维持一个存储区域&#xff0c;在浏览器打开期间存在&#xff0c;包括页面重新加载 localStorage&#xff08;长期存储&…