2021-01-01から1年間の記事一覧

構造内部の辞書型や列挙型のアクセス方法としてサブスクリプトを定義

/* サブスクリプト 構造内部の辞書型や列挙型のアクセス方法としてサブスクリプトを定義 */ struct TimesTable { let multiplier: Int subscript(index: Int) -> Int { return multiplier * index } } let threeTimesTable = TimesTable(multiplier: 3) prin…

コレクション型 配列、辞書など

/* コレクション型 配列、辞書など */ // var shoppingList: String[] = ["Eggs", "Milk"] // error: array types are now written with the brackets around the element type var shoppingList: [String] = ["Eggs", "Milk"] var airports: Dictionary<String, String> = [</string,>…

タプル

/* タプル */ let http404Error = (404, "Not Found") print("http404Error = \(http404Error)")

アサーション

/* アサーション */ let age = -3 // assert(age >= 0, "A person's age cannot be less than zero") // (RUN TIME) Assertion failed: A person's age cannot be less than zero: ...

プロトコルと拡張

/* プロトコルと拡張 */ protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust() } extension Int: ExampleProtocol { var simpleDescription: String { return "The number \(self)" } mutating func adjust() { self +…

ネストした型

/* ネストした型 */ struct BlackjackCard { // nested Suit enumeration enum NestSuit: Character { case Spades = "♠", Hearts = "♡", Diamonds = "♢", Clubs = "♣" } } let card = BlackjackCard.NestSuit.Hearts print("card = \(card)") print("card =…

列挙型と構造型

/* 列挙型と構造型 */ enum Suit { case Spades, Hearts, Diamonds, Clubs func simpleDescription() -> String { switch self { case .Spades: return "spades" case .Hearts: return "hearts" case .Diamonds: return "diamonds" case .Clubs: return "clu…

オブジェクトとクラス クラス定義してインスタンス化して利用

/* オブジェクトとクラス クラス定義してインスタンス化して利用 */ class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \(numberOfSides) sides." } } var shape = Shape() shape.numberOfSides = 7 print("s…

複数の戻り値の関数

/* 複数の戻り値の関数 */ func count(string: String) -> (vowels: Int, consonants: Int, others: Int) { var vowels = 0, consonants = 0, others = 0 for character in string { // switch String(character).lowercaseString { // error: value of type…

関数が戻り値になる関数

/* 関数が戻り値になる関数 */ // func makeIncrementer() -> (Int -> Int) { // error: single argument function types require parentheses func makeIncrementer() -> ((Int) -> Int) { func addOne(number: Int) -> Int { return 1 + number } return a…

funcで関数の定義と代入

/* funcで関数の定義と代入 */ // 関数を定義して func greet(name: String, day: String) -> String { return "Hello \(name), today is \(day)." } // 代入もできる。 // greet("Bob", "Tuesday") // error: missing argument labels 'name:day:' in call …

NULLも入る変数の宣言

/* NULLも入る変数の宣言 */ var flag: Bool? var num: Int? if (flag == nil) { print("flag == NULL") } // if (flag) { // error: value of optional type 'Bool?' must be unwrapped to a value of type 'Bool' if (flag ?? false) { print("flag == tru…

変数の型宣言と型推論

/* 変数の型宣言と型推論 */ var welcomeMessage: String var pi: Double = 3 var piFl: Float = 3 var piInt: Int = 3 var piAuto = 3 pi = 3.14 piFl = 3.14 // piInt = 3.14 // error: cannot assign value of type 'Double' to type 'Int' // piAuto = 3…

変数の宣言 varは変数、letは定数

/* 変数の宣言 varは変数、letは定数 */ var myVar = 42 myVar = 50 let myConst = 42 // myConst = 50 // error: cannot assign to value: 'myConst' is a 'let' constant print("Hello, world!") print("myVar = \(myVar), myConst = \(myConst)")

WindowsとMac miniの両方使うとき困ったメモ

iPhoneのプログラムを作りたくて、Mac miniを購入。今までWindowsしか使ったことがなく、つまずいたことをツラツラと Q1.漢字変換のon/offはどこ? 右上の「半角/全角漢字」キーが効かない! A1.Windowsキー+スペースで切り替える Q2.コピー&ペーストのシ…

超簡単なUnityアプリをiPhoneで動かす

【今日のお題】 空と地面だけのUnityなんにもない画面をiPhoneで表示します。 iPhoneでなにもないUnityの画面を出す 【1.前提条件】 Mac miniを使って、UnityアプリをiPhoneで動かすのですが、SSDの容量が足りず、Windowsを使って、Uniyコードからxcodeの…

プログ開設しました

今日からブログをはじめます。と言っても主に自分用のメモ。 プログラムが趣味で、開発中にわかったことを、ここに書いておいて忘れないようにするためです。たぶん同じことで困っている人がいると思うので、参考になればと公開します。 カバーする分野は、W…