「Swift」の版間の差分
ナビゲーションに移動
検索に移動
(→演算子) |
|||
140行目: | 140行目: | ||
*ポインタはないため、*、&、-> は異なった意味 | *ポインタはないため、*、&、-> は異なった意味 | ||
*インクリメント(++)、デクリメント(--) は廃止された | *インクリメント(++)、デクリメント(--) は廃止された | ||
− | ==モジュールのインポート== | + | ==モジュールと名前空間== |
+ | ===モジュールのインポート=== | ||
*フレームワークや外部モジュールからクラスや関数情報をimportで取込む | *フレームワークや外部モジュールからクラスや関数情報をimportで取込む | ||
*[[Xcode]]にある、*.swiftdoc や *.swiftmodule がSwiftが利用できるモジュール情報 | *[[Xcode]]にある、*.swiftdoc や *.swiftmodule がSwiftが利用できるモジュール情報 | ||
146行目: | 147行目: | ||
import Foundation | import Foundation | ||
</pre> | </pre> | ||
+ | ===名前空間=== | ||
+ | *ドットで区切って修飾 | ||
==SwiftUI== | ==SwiftUI== |
2020年12月19日 (土) 08:40時点における版
| Xcode | Mac | IPhone Xcode |
環境
Xcode
コマンドライン
- swiftと入力
- 終了には、:q もしくは、ctrl+D
- パスが通ったところに配置されていれば実行できる
$ swift Welcome to Apple Swift version 5.3.1 (swiftlang-1200.0.41 clang-1200.0.32.8). Type :help for assistance. 1> print("test") test
コマンドラインツールを実行
- アクティブ開発ディレクトリのコマンドラインツールを見つけて実行する
- アクティブ開発ディレクトリは、xcode-select で指定する
- アクティブ開発ディレクトリを表示
$ xcode-select -p /Applications/Xcode.app/Contents/Developer
- 以下のようにswiftコマンドを実行もできる
$ xcrun swift
SDK
- SDKを指定してswiftを起動するときに、指定できるSDK一覧を表示
$ xcodebuild -showsdks iOS SDKs: iOS 14.2 -sdk iphoneos14.2 iOS Simulator SDKs: Simulator - iOS 14.2 -sdk iphonesimulator14.2 macOS SDKs: DriverKit 20.0 -sdk driverkit.macosx20.0 macOS 11.0 -sdk macosx11.0 :
SDKを指定して、swiftを起動
$ xcrun -sdk macosx11.0 swift
環境変数にSDKパスを指定
- 以下でSDKのパスを取得し、SDKROOT環境変数に設定し、swiftを起動
$ xcrun -sdk macosx11.0 --show-sdk-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.sdk
データ型
- 型の実体はインスタンス
- 値型と参照型
- 基本データ型
- Int
- UInt
- Float
- Double
- Bool : true/false
- Character : Unicodeの1文字
- String : 値型
変数の定義
- 変数
var 変数名 : 型 = 式
var age : Int = 49
- 定数(単一代入)
let 変数名 : 型 = 式
let age = 49
型変換
- 暗黙の型変換は行われない
- Double() や Int() などのイニシャライザを利用する
1> var i:Int = 5 2> var d:Double = 0; 3> d = i error: repl.swift:3:5: error: cannot assign value of type 'Int' to type 'Double' 3> d = Double(i) 4> d $R0: Double = 5
文字列
- 連結は +
- リテラルは、"で囲む
- \n 改行など\でエスケープ
文字列埋め込み
- \(式) で展開される
> var i:Int = 5 i: Int = 5 > let s: String = "Number \(i * 3)" s: String = "Number 15"
配列
- T型の配列は、Array<T> もしくは、[T]
- 型省略初期化
> var ia = [1,2,3,4,5]
- 型宣言初期化
> var ia2: [Int] = [1,2,3,4,5]
- 要素0で初期化
> var sa = [String]() sa: [String] = 0 values
- もしくは
> var sa2: [String] = [] sa2: [String] = 0 values
参照と追加
> var ia = [1,2,3] > ia[1] $R0: Int = 2 > ia.append(4) > ia $R1: [Int] = 4 values { [0] = 1 [1] = 2 [2] = 3 [3] = 4 }
演算子
- C言語の演算子はほぼ使える
- ポインタはないため、*、&、-> は異なった意味
- インクリメント(++)、デクリメント(--) は廃止された
モジュールと名前空間
モジュールのインポート
- フレームワークや外部モジュールからクラスや関数情報をimportで取込む
- Xcodeにある、*.swiftdoc や *.swiftmodule がSwiftが利用できるモジュール情報
import Foundation
名前空間
- ドットで区切って修飾
SwiftUI
- https://developer.apple.com/jp/xcode/swiftui/
- 1セットのツールとAPIを使用するだけで、あらゆるAppleデバイス向けのユーザーインターフェイスを構築
- 宣言型シンタックスを使
- 宣言型のスタイルは、アニメーションなどの複雑な概念にも適用
デザインツール
- Xcodeには、SwiftUIでのインターフェイス構築をドラッグ&ドロップのように簡単に行える直感的な新しいデザインツールが含まれています
- デザインキャンバスでの編集内容と、隣接するエディタ内のコードはすべて完全に同期されます
ドラッグ&ドロップ
- ユーザーインターフェイス内のコンポーネントの位置は、キャンバス上でコントロールをドラッグするだけで調整できます
ダイナミックリプレースメント
- wiftのコンパイラとランタイムはXcode全体に完全に埋め込まれているため、Appは常にビルドされ実行されます
- 表示されるデザインキャンバスは、単にユーザーインターフェイスに似せたものではなく、実際のAppそのもの
- Xcodeは編集したコードを実際のAppに直接組み入れることができます
プレビュー
- プレビューを1つまたは複数作成して、サンプルデータを取得できる
Playground
チュートリアル
© 2006 矢木浩人