iOS 開発シリーズ - Swift 言語

概要

Swift は、Apple が 2014 年に発表した新しいプログラミング言語です。C 言語と ObjC の特徴を継承し、C 言語の互換性の問題を克服しています。Swift の開発過程では、ObjC の多くの文法的特徴を保持しているだけでなく、さまざまな現代言語の特徴も取り入れられており、その中には C#、Java、JavaScript、Python などの言語の影を見ることができます。同時に、2015年のWWDCでAppleはSwiftの新バージョンであるSwift 2.0を発表し、Swiftが後にオープンソースとなり、iOSとOS Xに加えてLinuxをサポートすることも発表した。

この記事は、読者がすでに他の言語の基礎を持っていることを前提として、iOS 開発チュートリアル シリーズを続けます (初心者はこのシリーズの最初の章から読み始めることを強くお勧めします。Swift から学びたい場合は、それをお勧めします) Apple の公式電子書籍「Swiftプログラミング言語」を最初に読むと、この言語の構文をゼロから少しずつ分析し、誰もが ObjC から Swift 開発に迅速に移行できるようにすることを目的としています。とはいえ、Swift の文法的特徴をできるだけ網羅的に紹介するのは簡単ではないため、この記事では長めに紹介します。

  1. 基本的な部分
    1. 最初の Swift プログラム
    2. データの種類
      1. ベースタイプ
      2. コレクションの種類
      3. タプル
      4. オプションタイプ
    3. オペレーター
    4. 制御フロー
  2. 関数とクロージャ
    1. 関数
    2. 閉鎖
  3. 親切
    1. 属性
    2. 方法
    3. 下付き文字
    4. 継承する
  4. プロトコル
  5. 拡大する
  6. 列挙型と構造体
    1. 構造
    2. 列挙する
  7. ジェネリック

基本的な部分

最初の Swift プログラム

次のようにコマンドラインプログラムを作成します。

import Foundation
 
/**
*  Swift没有main函数,默认从top level code的上方开始自上而下执行(因此不能有多个top level代码)
*/
println("Hello, World!")

上記のコードからわかるように:

  1. Swift には main 関数がなく、トップレベルのコードの先頭から実行されます (つまり、最初の非宣言ステートメントが実行されます [式または制御構造、クラス、構造体、列挙型、メソッドなどは宣言ステートメントです) ]) 存在できません 複数のトップレベル コード ファイル (そうしないと、コンパイラーは実行エントリを決定できません。実際、Swift には暗黙的に main 関数があり、グローバルな "C_ARGC C_ARGV" を設定して呼び出し、構成された top_level_code() 関数を呼び出します。トップレベルコードの);
  2. Swift は、インポートを通じて他のクラス ライブラリを導入します (Java と同様)。
  3. Swift ステートメントは、行に複数のステートメントが含まれていない限り (Python と同様)、二重引用符で終わる必要はありません (二重引用符を追加してもエラーは発生しません)。

データの種類

Swift には、C および ObjC 言語のすべての基本型、Int 整数、

import Foundation
 
var a:Int=1 //通过var定义一个变量
 
//下面变量b虽然没有声明类型,但是会自动进行类型推断,这里b推断为Int类型
var b=2
 
var c:UInt=3
let d=a+b //通过let定义一个变量
 
//下面通过"\()"实现了字符串和变量相加(字符串插值),等价于println("d="+String(d))
println("d=\(d)") //结果:d=3
 
//注意由于Swift是强类型语言,a是Int类型而c是UInt类型,二者不能运算,下面的语句报错;但是注意如果是类似于:let a=1+2.0是不会报错的,因为两个都是字面量,Swift会首先计算出结果再推断a的类型
//let e=a+c
 
//Int.max是Int类型的最大值,类似还有Int.min、Int32.max、Int32.min等
let e=Int.max //结果:9223372036854775807
 
var f:Float=1.0
var g=2.0 //浮点型自动推断为Double类型
 
var h:String="hello "
 
//emoj表情也可以作为变量或者常量,事实上所有Unicode字符都是可以的
var 									
iOS开发系列--Swift语言的更多相关文章
	
								
iOS开发系列--Swift进阶
		
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
		
						
iOS开发系列--C语言之基础知识
		
概览 当前移动开发的趋势已经势不可挡,这个系列希望浅谈一下个人对IOS开发的一些见解,这个IOS系列计划从几个角度去说IOS开发: C语言 OC基础 IOS开发(iphone/ipad) Swift  ...
		
						
iOS开发系列--Swift 3.0
		
概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3.0,这期间由于Swift目前还在发展阶段并不能向下兼容,因此第一篇文章中的部分代码在当前的Xcode环境中已经无法运行 ...
		
						
iOS开发系列--C语言之存储方式和作用域
		
概述 基本上每种语言都要讨论这个话题,C语言也不例外,因为只有你完全了解每个变量或函数存储方式.作用范围和销毁时间才可能正确的使用这门语言.今天将着重介绍C语言中变量作用范围.存储方式.生命周期.作用 ...
		
						
iOS开发系列--C语言之数组和字符串
		
概览 数组在C语言中有着特殊的地位,它有很多特性,例如它的存储是连续的,数组的名称就是数组的地址等.而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符数组.今天主要就介绍如 ...
		
						
iOS开发系列--C语言之指针
		
概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移越来越模糊,感觉指针难以掌握,本文通过简单的例子试图将指针解释清楚,今天的重点有几个方面: 什么是指针  ...
		
						
iOS开发系列--C语言之预处理
		
概述 大家都知道一个C程序的运行包括编译和链接两个阶段,其实在编译之前预处理器首先要进行预处理操作,将处理完产生的一个新的源文件进行编译.由于预处理指令是在编译之前就进行了,因此很多时候它要比在程序运 ...
		
						
iOS开发系列--C语言之构造类型
		
概述 在第一节中我们就提到C语言的构造类型,分为:数组.结构体.枚举.共用体,当然前面数组的内容已经说了很多了,这一节将会重点说一下其他三种类型. 结构体 枚举 共用体 结构体 数组中存储的是一系列相 ...
		
						
iOS开发系列文章(持续更新……)
		
iOS开发系列的文章,内容循序渐进,包含C语言.ObjC.iOS开发以及日后要写的游戏开发和Swift编程几部分内容.文章会持续更新,希望大家多多关注,如果文章对你有帮助请点赞支持,多谢! 为了方便大 ...
		
		
	
 
随机推荐	
									
用CIL写程序:你好,沃尔德
			
前言: 项目紧赶慢赶总算在年前有了一些成绩,所以沉寂了几周之后,小匹夫也终于有时间写点东西了.以前匹夫写过一篇文章,对CIL做了一个简单地介绍,不过不知道各位看官看的是否过瘾,至少小匹夫觉得很不过瘾. ...
			
						
jQuery学习之路(8)- 表单验证插件-Validation
			
▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...
			
						
[C#] 简单的 Helper 封装 -- RegularExpressionHelper
			
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
			
						
ASP.NET Core CORS 简单使用
			
CORS 全称"跨域资源共享"(Cross-origin resource sharing). 跨域就是不同域之间进行数据访问,比如 a.sample.com 访问 b.sampl ...
			
						
Consul-template的简单应用:配置中心,服务发现与健康监测
			
简介 Consul-template是Consul的一个方扩展工具,通过监听Consul中的数据可以动态修改一些配置文件,大家比较热衷于应用在Nginx,HAProxy上动态配置健康状态下的客户端反向 ...
			
						
【HTML】Html页面跳转的5种方式
			
目录结构: // contents structure [-] html实现 javascript方式实现 结合了倒数的javascript实现(IE) 解决Firefox不支持innerText的问 ...
			
						
Cesium简介以及离线部署运行
			
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
			
						
一个软件开发者的BPM之路
			
我是小林,一名普通的软件工程师,从事BPM(业务流程管理)软件开发工作.我没有几十年的技术底蕴,无法像大牛们一样高谈阔论,品评BPM开发之道:也不是资深的流程管理专家,能与大家分析流程管理的时弊.我只 ...
			
						
Android 指纹认证
			
安卓指纹认证使用智能手机触摸传感器对用户进行身份验证.Android Marshmallow(棉花糖)提供了一套API,使用户很容易使用触摸传感器.在Android Marshmallow之前访问触摸 ...
			
						
如何开启MySQL 5.7.12 的二进制日志
			
1. 打开/etc下的my.cnf文件 2. 编辑它,添加内容: log_bin=binary-log   #二进制日志的文件名 server_id=1  #必须指定server_id,这是MySQL ...
			
						

Float および Double 浮動小数点型、Bool Boolean 型、Character 文字型、String 文字列型、もちろん enum 列挙型、構造体構築型、Array 配列、Set コレクション、Dictionary 辞書コレクション型も含まれます。高レベルの 1 次データ型タプル (Tuple)、オプション型 (Optinal) を追加します。

ベースタイプ

Xcode は 6.0 以降、Playground コード テストを追加しました。これにより、コードの実行結果をリアルタイムで表示できます。Playground を使用して、Swift の基本的な内容を簡単に示し、Swift を簡単に理解しましょう。

おすすめ

転載: blog.csdn.net/lmrylll/article/details/130485509