chevron_left

メインカテゴリーを選択しなおす

cancel
arrow_drop_down
  • iOSアプリの開発に必要なもの

    iPhoneやiPadで使える、遊べるアプリを自分でも作ってみたいなと思った時、 その開発には何が必要なのでしょうか? カンタンにまとめました。 iOSアプリ開発に必要なもの - 世界一シンプルなはじめてのSwiftUIのブログiOSアプリ開発に必要なもの はじまり 毎日使っているあのアプリや楽しめるアプリ、ゲームなど、、iPhoneやiPadではたくさんのアプリを毎日使ってい verysimple-swift.main.jp iOSアプリ開発はとても楽しいです。

  • 【iOSアプリ開発】マクロも入って来て、一段とパワーアップ

    Xcode15.0の正式版がリリースされています。 iOS17への対応や、Swiftが5.9になりました。 開発者サイドから見ると特に、Swift5.9からマクロが使えるようになり、 一段と表現力がアップします。 マクロは使い方次第で、全く別の言語も作れてしまうくらいのパワーを持っています。 Swiftのマクロは、コンパイルも拡張することができて、 例えば、あるURLが有効かどうかも、 通常実行時にアクセスをして検出して色んな処理をするところ、 コンパイル時に検出できるような構文も作れます。 今回のアップデートで、iOSアプリ開発がさらに面白くなります。 まとめ htt

  • 【Swift】範囲型を扱う

    Swiftでは、処理をする値や動作の範囲や境界条件などを表現するのも容易です。 リファレンス用に書きました。 【Swift】末尾の値を含む範囲を作る Swiftでの範囲型を使うと、処理する値の範囲や、値が取りうる範囲などを容易に表現す ... verysimple-swift.main.jp 範囲の操作などもあります。 【Swift】範囲の境界へアクセス 範囲型の境界を知りたい場合にはどうし

  • 【Swift】型のネスト

    Swiftでは、型の中に型を定義、配置することができます。これを型のネストと言います。 型をネストすることで、 1. 型の名前が短縮、簡潔にできたり、 2. 名前の衝突を避けることができます。 図書館の本を例に、早速見てみましょう。 struct LibraryBook {    enum Status {        case available        case rent        case missing &nbs

  • スティーブ・ジョブズ 自由の精神

    無料トライアル実施中!<U-NEXT> U-NEXTより 動画ページ スティーブ・ジョブズがAppleを創設し、iPhoneやiPadによって宇宙にインパクトを与えるまでを追いかけたドキュメンタリーです。BBCの制作によるもので、時代背景の分析や様々な面からのお話が出てきます。スティーブ・ジョブズの強烈な個性の良い面もそうでない面(他からすると)も、多様に語られています。 Appleの共同設立者のスティーブ・ウォズニアックも出て来て話し、当時の状況や、ジョブズから語られていなかったエピソードなども出て来ます。 禅を実践していたことも語られたり、日本を訪れたことについても触れられて

  • コメント良しあし

    コメントがあることによって、他の人も3ヶ月後の自分もコードを読みやすくなったりします。 逆に、コメントによって、あらぬ混乱が生まれたりすることもあります。一つ、よくない例を実際に見てみましょう。 // MARK: これはマネしたらマズイ例 /* 足し算を行う関数 整数型の引数aと整数型の引数bをとる そして、関数内部でaとbを足し、 その結果を整数型の値で返す。 */ func add(a: Int, b: Int) -> Int { var result = a + b return result } これはコメントがなくても、コードを読めば

  • 【SwiftUI】TODO, FIXME, MARKを付けておく方法

    実装に対するコメントとして、やることや修正が必要なこと、気を付けることなどは、TODO、FIXME、MARKを付けておくと、Xcodeのミニマップで後から見つけやすくなります。 import SwiftUI struct CommentExample: View { var body: some View { VStack { Text("Xcodeの") // TODO: やること Text("機能で") // FIXME: 修正すること

  • 【Swift】ドキュメントコメントの付け方

    Swiftでは、通常のコメントの他に、ドキュメントコメントも付けることができます。ドキュメントコメントは、XcodeのQuick Helpから見ることができるものです。Quick Helpは、関数などを右クリックするか、View → Inspectorsから見ることができます(とても便利です)。 Markdown記法を使うことができ、スタイルの指定も可能です。そして、引数や返り値など関数のインターフェースについての説明もできます。 /** ドキュメントコメントは2種類の書き方が可能です。 /** */で囲むものと、///で始まるものです。 */ /// ドキュメントコメン

  • 【Swift】コメントの付け方

    Swiftでは、ソースコードにコメントを付けることができます。 コメントは、あってもプログラムの実行に関係のないもので、開発の時の助けになります。 // この行の//以降はコメントとして解釈される // 2行目もコメントにしたければ、また //から始める /* ブロックコメント /* */で囲まれた部分が全てコメントとして扱われる */ 2つの書き方があります。 1. // (スラッシュ)2つの後にコメントを続けるもの。 2. /* */ で囲むもの。 コメントは、実装についてのちょっとしたことやメモを書いたりします。 他の人がコードを読んだり、保守・運用の段階や、コ

  • 【Swift】トレイリングクロージャ(接尾クロージャ)って?

    クロージャは、内部で変数を使ったりもできる処理のまとまりですので、行数が長くなることもしばしば。一方、クロージャの意義は、関数の引数として渡せることです。 ですが、そのままクロージャを渡してしまうと、コードがすごく読みづらくなってしまうこともあります。 Swiftではこうしたことへの工夫もされていて、トレイリングクロージャもその一つです。関数の引数の最後がクロージャである場合に使えるもので、可読性を上げることができます。 func trailingTest(num: Int, closure: () -> ()) { // 処理 closure() } /

  • 【Swift/SwiftUI】クロージャの使われ方

    クロージャは、SwiftUIでも頻繁に使われています。 一部抜粋すると、こんな感じです。 VStack { Text("おはよう") Text("こんにちは") Text("こんばんは") } VStackというのは構造体なのですが、(イニシャライザが)その引数としてクロージャをとっています。このクロージャの型は「() -> Content」型で、引数を持たず、Content型の値を返します。 そして、VStackで渡されたクロージャの中の要素を縦に(Vertic

  • 【Swift】クロージャの引数と返り値の型を省略する

    クロージャの型が推論できる場合には、クロージャの引数や返り値の型を省略することができます。 var doubleCount: (String) -> Int // クロージャの型を定義 doubleCount = {string in return string.count * 2 } doubleCount("ABCD") // 8 クロージャの{ }内が読みやすくなります。 世界一シンプルなはじめてのSwiftUI 合本版: かんたんにiOSアプリを作って、いじってみる SwiftUI入門 amzn.to 1,20

  • 【Swift】返り値を持つクロージャを作る

    クロージャも返り値を返すことができます。 var withReturn = { var result = 2 * 2 return result } withReturn() // 4 通常の関数のような感じです。 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】引数を持つクロージャを作る

    クロージャも引数をとることができます。 var withParam = {(param: Int) in print("引数は\(param)です。") } withParam(3) // 引数は3です。 関数の定義のように、引数名と型名を指定します。 (カンマで区切ると複数の引数も渡せます。) そして、inキーワードで本体部分と分けます。 クロージャの呼び出し時には、引数名は指定しません。ここは関数と異なります。 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04

  • 【Swift】クロージャの中で変数を使う

    クロージャも名前が無いだけで、通常の関数のように内部では変数や定数も使うことができます。 var closure = { let swift = "Swift" var msg = "楽しいです。" print("\(swift)\(msg)") } closure() // Swift楽しいです。 変数や定数のスコープも、クロージャの中だけです。 世界一シンプルなはじめてのSwiftUIの次に読む本 SwiftUI入門 amzn.to 600円 (2023年09月03日 23:29時点 詳しくはこちら)

  • 【Swift】クロージャの型って?

    クロージャは関数に渡すことができます。 ですが、Swiftは静的型付け言語ですし、関数の引数には型を指定する必要があり、指定しないとコンパイルが通りません。 関数に渡す時、クロージャの型はどんな型になるのでしょうか? クロージャは名前が無いだけで関数なので、引数もとれるし、返り値も返せます。実は、この部分を型のように指定してあげるのが、クロージャを関数に渡す時のポイントです。 改めて最単純なクロージャを見てみます。 // 引数をとらず、返り値もないクロージャ var closure = { print("クロージャを実行しました。") } このクロージャは引数を持たず

  • 【Swift】クロージャの使い方

    クロージャは、関数型プログラミング言語のコアの部分です。使われ方、表現がいくつかありますので、一つの側面だけでなく、角度を変えたりしながら慣れていきましょう。 とは言っても、原則はシンプル。クロージャはある処理を{ }でまとめたもので、単体で実行もできますし、関数に渡すことができるということです。そのために、クロージャも様々な表現の仕方があります。 最単純なクロージャを見てみます。 var closure = { print("クロージャを実行しました。") } closure() // クロージャを実行しました。 クロージャを変数に代入しています。そして、後か

  • クロージャことはじめ

    Swiftに限らず、現代の主要なプログラミング言語では関数型プログラミングのスタイルも導入され、書けるようになっています。C++やJavaもそうです。 Swiftもパラダイムが色々入っていますが関数型言語で、高い表現力を持ちます。そんな関数型でまず間違いなく備わっている仕組みがクロージャです。 クロージャ(closure)というのは、ある処理をまとめたものです。クロージャも引数をとれ、返り値を返せてほぼ関数ですが、一点大きく異なるのは名前が無いということです。その分、定義が簡略化されプログラムの一連の流れの中でなめらかに使えたりします。 そんなクロージャを使うにあたって、関数型の

  • 【Swift】プロトコルのデフォルト実装

    プロトコルエクステンションで実装を追加すると、採用した型でのその実装は任意になります。そこで実装が再定義されなければ、プロトコルエクステンションの実装がデフォルトとして使われます。 これも見てみるのが早いと思います。 protocol Bicycle {    var wheelSize: Int { get }    func brake()     // ブレーキ } extension Bicycle {    func brake() {       &nb

  • 【Swift】プロトコルの拡張(エクステンション)

    すでに存在しているプロトコルに対して、プロパティやメソッドの実装を追加できます。これを拡張(エクステンション)と呼びます。 やり方は、extensionキーワードを使います。 protocol Bicycle { var wheelSize: Int { get } func brake() // ブレーキ } extension Bicycle { func brake() { print("無事止まりました。") } } エクステンションで追加するのは、インターフェースではなく、実装です。 拡張してもプロトコルの使い方

  • 【Swift/SwiftUI】プロトコルの使われ方

    プロトコルを使うことで、ある存在が持っているべき要素を規定することができます。 SwiftUIでもプロトコルは頻繁に使われていて、例えば図形の描画です。 少し四角形を想像してみてください。 四角形に必要なものは色々あると思いますが、「辺」は必要なはずです。 逆に、辺の無い四角形って想像しようがないのではないかと思います。 こうしたことを表現するために、図形に関してShapeというプロトコルがあり、関数pathが実装必須になっています。このpath内部で図形の線を描いて行くことになります。 import SwiftUI struct MyShape: Shape { f

  • 【Swift】プロトコルの継承

    プロトコルは継承をすることができます。継承元のプロトコルから、プロパティとメソッドを引き継ぎます。 protocol プロトコル: 継承元のプロトコル {    // 定義 } という感じで、クラスの継承と同じ感じの書き方です。 早速、例を作ってみましょう。 protocol Book {    var title: String { get }    var author: String { get }    // 著者 } protocol PictureBook: Book { &n

  • 【Swift】複数のプロトコルを採用する

    一つの構造体やクラスに、複数のプロトコルを準拠させることもできます。プロトコル同士をカンマで区切ります。 構造体ならこんな感じです。 struct 構造体名: プロトコル1, プロトコル2, プロトコル3,,, { // 構造体の定義 } 独自のプロトコルと、標準で用意されているプロトコル(例: Identifiable)を準拠させるといった使い方もよくあります。 世界一シンプルなはじめてのSwiftUI 決定版: かんたんにiOSアプリを作って遊んでみる SwiftUI入門 amzn.to 3,600円 (2023年09月05日 08:49時点

  • 【Swift】プロトコルの定義でgetのみ指定しているのに値を変更できるのは何で?

    プロトコルの定義で、プロパティ(変数や定数)に対しては、getまたはsetを指定することで、プロパティの値の変更について定義します。 それで、getを指定しているのに値を変更できるのは何でかな?という疑問があります。(僕はありました。。) シンプルな例ですとこんな感じです。 protocol Book { var format: String { get } // 出版形式 } struct Manga: Book { var format: String } var manga = Manga(format: "紙") manga.format = "k

  • 【Swift】プロトコルの使い方

    定義したプロトコルの使い方は、構造体や列挙型、クラスの定義部分で、名前の後に準拠させる「: プロトコル名」を付けます。 例えば、構造体なら、 struct 構造体名: 準拠するプロトコル { // 定義 } という感じです。 実際に使ってみましょう。 protocol Bicycle { var wheelSize: Int { get } func brake() // ブレーキ } struct MountainBike: Bicycle { var wheelSize: Int func brake() {

  • 【Swift】プロトコルの定義の仕方

    プロトコルを定義する時は、 protocol プロトコル名 { // 定義 } のようにprotocolキーワードを使って定義します。 実際に自転車を例に作ってみましょう。 protocol Bicycle { var wheelSize: Int { get } func brake() -> Bool // ブレーキ } 自転車が持つべき要素として、車輪のサイズとブレーキの機能を持たせました。(もちろん他にもあると思います。) プロトコルの定義では、プロパティ(変数や定数のこと)については型と、getまたはsetを定義します。get/s

  • 【Swift】プロトコルことはじめ

    Swiftは、先進的な機能が詰まった言語で、拡張性も高く柔軟な設計も可能です。 プロトコルもそのための中心的な役割を担っています。 というよりむしろ、Swiftという言語はプロトコルを使うために開発された言語でプロトコル指向の言語です。 これをしっかり落とし込まないと、 クラスもあるため従来のオブジェクト指向になりがちですし、 なぜ、Swiftではクラスよりも構造体がメインに使われるのか? といったことがよく分かりません。 Swiftでは、クラスよりも、まずプロトコルからです。 それでは、プロトコルとは何なのか?ということですが、 大まかには規約で、 ある存在が持っていてほしい、

  • 【Swift】値型と参照型

    値型と参照型。 プログラミングをする上でよく出てくる言葉ですが、Swiftでもあります。 まず値型。 これはInt型やString型などで感覚的にもつかみやすいと思います。 変数ごとにそれぞれ値を持ち、他の変数の値が変更されても影響を受けません。 var m = 1 var n = m m += 1 print(m, n) // 2 1 次に参照型です。 こちらは値への参照を表します。 Swiftのクラスは参照型です。 複数の変数が同じインスタンスを参照することがあり、 ある変数での値の変更が、同じインスタンスを参照する他の変数の値に影響します。 class A

  • 【Swift】オーバーライドのやり方

    クラスを継承すると継承元の要素が引き継がれますが、中にはサブクラスで微妙に変えたいものもあったりします。そんな時には、サブクラスで再定義することができます。これをオーバーライドと言います。 やり方は、オーバーライドしたい要素の先頭にoverrideのキーワードを付けるだけです。 // スーパークラス class Notification { var notice: Bool // 通知が来ているかどうか init() { self.notice = false } func notify() {

  • 【Swift】クラスの継承

    クラスは継承をすることができます。 継承をすると、元のクラスが持っていた要素が引き継がれ、 継承元のクラス(スーパークラス)との差分を定義すればよいだけになります。 (ちなみにSwiftではクラスの多重継承はできないようになっています。) 書き方はシンプルで、 class クラス名 : スーパークラス名 { // 定義 } です。 例を見てみましょう。 アプリを使っていて、「いいね」の通知やメッセージや新着情報の通知があるかと思いますが、そのモデル化をしてみます。 // スーパークラス class Notification { var notice: Bool

  • 【Swift】クラスにメソッドを追加する

    クラスにはメソッドを定義することができます。 (クラスやインスタンスに紐づいた関数をメソッドと呼びます。) class Reserver { let name: String var stay: Bool init(name: String) { self.name = name stay = false } func checkin() { self.stay = true } } var reserver = Reserver(name: "山田太郎") rese

  • 【Swift】クラスのインスタンスを作る

    構造体と同じ書き方ですし、何も言われずに外から見ると、構造体もクラスも同じように見えます。 class UserState { let name: String var stay: Bool init(name: String) { self.name = name stay = false } } var state = UserState(name: "山口") 構造体同様、インスタンス、オブジェクトを生成する際には、クラスの変数(プロパティと呼びます)が全て初期化されている必要があります。

  • 【Swift】クラスの定義

    クラスの定義もカンタンです。 class クラス名 { 定義 } という感じで、構造体同様に変数や定数、関数を定義して行きます。 // ホテルの利用者の状態を保持するクラス class UserState { let name: String var stay: Bool init(name: String) { self.name = name stay = false } } クラスの場合、構造体とは違って、イニシャライザを明示的に書かないと Class 'UserState' has

  • 【Swift】クラスことはじめ

    Swiftには、C++やJava、PythonやRubyなどの言語のようにクラスが備わっていて、オブジェクト指向でもあります。 各オブジェクトはデータだけでなく、メソッドを持て、動作も記述することができます。 Swiftの場合、イメージとしては構造体のような感じです。 例えば、新幹線の車両でも設計図があるはずで、その設計図がクラスに相当します。そして、その設計図を元に作られる個別・具体的な車両がオブジェクトに相当します。設計図は一つでも、作られる車両はたくさんあるということです。 各車両は、N700などのモデル名が付いていたり、客席数が異なっていたり、振動の状態を検知するシステムの

  • 【Swift】オプショナルチェーンのやり方

    オプショナル型を使うことでNull安全なコードを書くことができますが、オプショナル型をネストさせると、コードの量が増えたり煩雑になりがちです。 ですが、そこはSwift。 そうした場合のショートカットも用意されています。 例を見てみましょう。 struct Student { var dormitory: Dormitory? } struct Dormitory { var roomNum: Int = 1 } let yamada = Student() if let unwrapped = yamada.dormitory?.roomNum { /

  • 【Swift】独自の型をオプショナル型にする

    IntやStringなど標準で組み込まれている型以外に、独自に定義した型をオプショナル型にすることもできます。 やり方は、変数(定数)の宣言や初期化時に、作った型の後ろに?を付けます。 ユーザーがアバターも登録できるとして、アバターの設定部分を一つの型にまとめた例です。アバターを登録するのは任意なので、オプショナル型を使って表してみました。 struct AvatarObj { let size: Int let glass: Bool // メガネをかけているかどうか } var obj: AvatarObj? // オプショナル型にしている

  • 【Swift】guard-letの使い方

    オプショナル型の値を取り出すのに、guard-letを使う方法もあります。 オプショナル型の変数(定数)が値を持つかどうかを判定し、持つなら使って行くという感じです。 func wakeup(at time: Int?) { guard let unwrapped = time else { print("起きる時間を設定しないと寝坊してしまいます。") return } print("\(unwrapped)時に起きました。") } wakeup(at: 7) guardの目的は、guard文以降も条件式がtrueである

  • 【Swift】オプショナル型の値の取り出し(if-let)

    オプショナル型の値を取り出すのに、if-let構文を使うこともできます。 安全に値を取り出すことができる方法です。 var op: Int? = 3 if let unwrapped = op { print("値が存在します: \(unwrapped)") // 値が存在します: 3 } else { print("値が存在しません。") } // unwrappedのスコープはif文の中だけ if文により、オプショナル型の変数(定数)が値を持つかどうかを判定し、持つならその値をifの{ }の中で使うという感じです。elseの{ }では値を持たないので

  • 【Swift】オプショナル型の値を開示(??演算子)

    オプショナル型の値を開示するには、いくつかやり方があります。 ここでは、??演算子を使います。 var op: Int? = 1 let res = op ?? 0 // 1 -> 通常の値 var op2: Int? = nil let res2 = op2 ?? 0 // 0 -> デフォルト値 ??演算子を使うと、オプショナル型の変数が値を持つ場合には、そのままの値を採用し、nilの場合にはデフォルト値を採用することができます。 // ??演算子の使い方 オプショナル型の変数(定数) ?? デフォルト値 変数(定数)がnilの場合の対

  • 【Swift】オプショナル型の値の強制開示

    オプショナル型の値は、通常の値とnilのどちらも持ちうるというものですが、使うにあたって最終的にどちらなのか知らないことには使えません(コンパイルエラーになります)。 そのための操作が「開示(unwrap)」です。 一つのやり方は、変数(定数)の後に、!を付けるだけです。 var a: Int = 0 var b: Int? = 0 a = b!     // 0   -> Int?型の値を開示したので、Int型に値を代入できる 上記の例だと開示すると通常の値ですが、 nilの場合もありえます。 それでも開示することができ、 その時は、実行時

  • 【Swift】オプショナルと通常の型は別

    Swiftでは、Int型やString型など様々な型を、nilを持ちうるオプショナル型にすることができます。 その時、型名は末尾に?が付いたものになります。IntならInt?型で、StringならString?型です。まぎらわしいかもしれませんが「Int?」で一つの型です。 そして、"通常の"Int型とオプショナルのInt?型とは別です。 とても簡単な例を見てみましょう。 var a: Int = 0 var b: Int? = 0 a = b // bの値を代入しようとするとエラー Int型の変数にInt?型の値を変数の値を代入しようとすると、次のようなコンパイルエラーに

  • 【Swift】オプショナル値を使ってみる

    オプショナル値は値がnil、不在も許容しますが、値が不在とはどういうことなのでしょうか? そんなオプショナル値をいじってみましょう。 例えば、チャットやメッセージアプリだったり、、、 ユーザー登録の部分を考えてみます。 その時に、年齢や職業など必須でない部分が何かあると思います。 ここでは、IDはシステムで割り当てられ、ニックネームを登録して使うアプリにしてみます。そして、出身地を任意で登録できるようにします。 それを型として表現したのが下記のようなものです。 struct User { let id: Int var nickname: String

  • 【Swift】オプショナル値ことはじめ

    Swiftの特徴的なことの一つにオプショナル値の導入があります。 これは値がnilの場合も許容します。 nilは、値の不在で、0(ゼロ)というわけではありません。 数字の場合を考えてみても、自然には見えないものの、0は存在します。(世界中の人達が足し算・引き算をしています。) 同じように、nilは空の配列[]というわけでもありません。これは要素数が0の配列です。 こういう感じで、0ではなく、値が不在なのがnilです。 (書いてと言われても、書けないものです。。。) C言語などでは、プログラムの実行時にnullに対して演算をしようとすると、実行時エラーになり、プログラムがクラッシュ、

  • 【Swift】エラーを無視して処理を実行する

    Swiftでは、tryはエラーの発生しうる処理、throwsキーワードが指定された処理を呼び出す時にdo-catchの中で使われます。ですが、エラーが明らかに発生しないという箇所では、わざわざdo-catchを書かずに実行したい場合もあります。 そんな時は、try!を使って処理、関数を呼び出します。 enum IntError: Error { case overflow } func plus(num: Int) throws -> Int { guard num < Int.max else { throw IntError.ove

  • 【Swift】エラーの振り分け

    ある処理が、複数種類のエラーを発生させうるようなこともよくあります。 Swiftでは、そうしたエラーを振り分けて処理することができます。 書き方・考え方は、エラーが一つの場合とほとんど同じです。 do { // エラーの発生しうる処理 } catch エラー名1 { // エラー処理 } catch エラー名2 { // エラー処理 } ・・・ catchの数がエラーの種類分増えるだけです。 他のどのエラーケースにも捕捉対応する場合は、catchだけで平気です。 do { // エラーの発生しうる処理 } catch エラー名1 { /

  • 【Swift】エラーを投げる関数の使い方

    エラーが発生しうる関数を作る時、エラーを投げる関数も定義できます。投げたエラーは、関数の呼び出し元のdo-catchで捕捉します。 // 独自のエラーの型 enum ShopError : Error {    case ageError } func buyAlcohol(age: Int) throws {    guard age >= 20 else {        throw ShopError.ageError        // エラー

  • 【Swift】guard文の使い方

    Swiftでは、安全かつ明確にコードを書けるような仕組みが色々と備わっています。guard文もその一つです。 カンタンな例で見てみましょう。 func post(text: String) { guard text.count <= 5 else { print("文字数オーバーです。") return } print(text) } post(text: "こんにちは。") // 文字数オーバーです。 guardにより、textの長さが5以下かどうかが判定されます。もし、そうでなければ、文字数オーバーのメ

  • 【Swift】エラー処理(do-catch)

    Swiftのエラー処理でも、C++やJavaのように例外を投げる仕組みがあります。 tryキーワードもありますがdo-catch文です。 割り算をする関数を例に作ってみました。 // 独自に定義したエラーの型 enum OperationError : Error { case dividedByZero } func divide(numerator: Int, denominator: Int) -> Int { do { guard denominator != 0 else { throw OperationE

  • 【Swift】エラー処理を書こう

    プログラムの開発が進み、規模も大きくなって来るとエラー処理が必要になって来ます。 個人レベルで使う小さなものだと、書くのも手間が必要ですし、必要性を感じることが少ないかもしれませんが、ある程度の規模のプログラムなら何らかのエラー処理がなされているはずです。 Swiftは、言語仕様的にプログラム実行前のコンパイルの段階から、実行時の安全性が高くなるような仕組みになっています。とはいっても、値の不在、データベースやネットワーク、ハードウェア的な問題など、エラーの発生が避けられない場合もあります。 そして、新機能が追加されていったり、複数人で開発したり、長期的な運用になると、想定するエラ

  • 創始者の思想、考えにふれるのは学びを加速させる

    プログラミングに限らないことだと思いますが、 そのモノや分野、業界を創り上げたような創始者の思想や考えにふれると、 学びが一気に加速すると思います。 根本的なところが、もしつかめればブレずに進めますし、 残された言葉の一つで、 パッと理解が進んだりすることもあります。 どんなことを考えてこの製品を作ったのかな?とか、 そうしたことを思いめぐらせるのも僕は好きです。 今はツールも発達してとても学びやすい時代ですね。 [決定版]スティーブ・ジョブズ名語録 amzn.to 1,320円 (2023年09

  • 【Swift】エラー用の型の作り方

    Swiftでは、独自のエラー用の型を定義し、エラーをより効果的に扱うことができます。 作り方は、独自のエラーを定義したenumを、Errorプロトコルに準拠させるだけです。 enum DatabaseError: Error {    case dbNotFound    case transactionFailed } ここでは、データベース関連のエラーを定義しています。 プログラムを作って行くと他のエラーの定義も必要になるかと思いますが、データベースならデータベース、ネットワークならネットワーク、ファイルならファイルといった感じで

  • 【Swift】列挙型enumの名付け方

    Swiftでは、列挙型の名前は、構造体やクラスのように大文字で始めるのが慣習になっています。 enum Direction { case up case down case left case right } [増補改訂第3版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 WEB+DB PRESS plus amzn.to 3,428円 (2023年09月09日 02:22時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】列挙型にメソッドを持たせるとどうなるのか?

    Swiftでは列挙型もメソッドを持つことができます。 C言語でも列挙型はありますが、実際には意味を持つ定数の集まりであって、メソッドは持てません。 列挙型にメソッドを持たせるとどんなことが可能なのでしょうか。 やってみます。 enum Grade {    case standard, premium        func upgrade() -> Grade {        switch self {        cas

  • 【Swift】列挙型を定義する時に省略できるcaseの表記

    列挙型を定義する時に、二つ目のケース以降はcaseの表記を省略することもできます。 enum Grade { case economy, standard, premium } // 上記の書き方は、下記と同義。 // enum Grade { // case economy // case standard // case premium // } 世界一シンプルなはじめてのSwiftUI 決定版: かんたんにiOSアプリを作って遊んでみる SwiftUI入門 amzn.to 3,600円 (2023年09月05日 08

  • 【Swift】列挙型の使い方

    Swiftでは列挙型を扱うことができます。 同じ種類に属する項目、ケースをまとめることができます。 これは実際に見た方が早いと思います。 enum Grade {    case economy    case standard    case premium } 飛行機や宿泊施設などのプランを表現するGradeという列挙型を定義しました。enumというのは、enumerate(列挙する)の頭文字です。 列挙型を使うことでGradeが取りうるケースを網羅しています。ここが列挙型のポイントです。 では、この列挙型を

  • 【Swift】構造体のイニシャライザを定義する

    Swiftでは、構造体やクラスなどのインスタンスを作る、初期化する際にイニシャライザが必ず呼ばれます(C++やJavaならコンストラクタです)。 イニシャライザというのは、インスタンスを返す特殊なメソッドのようなものです。 Apple公式: https://docs.swift.org/swift-book/documentation/the-swift-programming-language/initialization/ イニシャライザの中では、単に変数に値を設定するだけでなく、初期化時に必要な処理を行うことができます。 やり方はカンタンで、initというキーワード

  • 【Swift】構造体にメソッドを持たせる

    構造体にメソッドを持たせるのもカンタンです。 構造体の中で関数を定義するだけです。 (構造体など型に紐づいた関数をメソッドと呼びます。) struct Country { let name: String var lang: String var population: Int func printInfo() { print("\(name) 言語:\(lang) 人口:\(population)人") } } var japan = Country(name: "日本", lang: "日本語", populat

  • 【Swift】構造体の初期化

    構造体を扱うには、初期化、インスタンス化をする必要があります。 設計図だけでは、現実世界でもそうですし、実際のプログラムでも役に立ちません。実体として、具現化する必要があります。それが初期化、インスタンス化です。 やり方は簡単です。 構造体の名前を指定し、構造体が持つ変数や定数の値を設定して行きます。ここでは、できあがったものを変数に代入しています。 struct Country { let name: String var lang: String var population: Int } var japan = Country(name: "日本",

  • 【Swift】構造体の定義

    構造体を定義する時には、structキーワードを使います。 国を表現するシンプルな構造体を定義してみると、こんな感じです。 struct Country { let name: String var lang: String var population: Int } structは、structure(構造)の頭文字です。 世界一シンプルなはじめてのSwiftUI 合本版: かんたんにiOSアプリを作って、いじってみる SwiftUI入門 amzn.to 1,200円 (2023年09月03日 23:44時点 詳しくはこち

  • 【Swift】構造体の大まかな感じ

    Swiftでは構造体を使うことができます。 Swiftの構造体は、データだけでなく、メソッドも持てるまとまりです。 (プログラミング言語によってはメソッドは持てません。) 構造体のイメージですが設計図のような感じです。 現実世界でたとえると、 家が窓とかドアとか、柱とか様々な部品から構成されている感じです。 そして、電気のスイッチなど、物によっては何かしらの機能・作用を持つものがあります(メソッドに相当)。 こうしたまとまりが構造体です。 そして、構造体を使う時に、各種の値を設定することで(または最初から設定しておき)、実際の家として扱うことができるようになります。 窓とかドア

  • 【Swift】関数のオーバーロード

    関数を定義する時に必須のものは関数の名前です。 名前があるから、後でも呼び出すことができます。 (“あの関数”を呼んでと言われても、プログラム側は分からないわけです。。) そして、関数を呼び出す時に、名前は同じでも、引数の型や数など呼び方、使い方を変えたい場合があります。言語によっては備わっていませんが(例:C言語)、Swiftでは、こうした機能も備わっています。関数のオーバーロードと呼びます。 func setting(width: Int) {    print("幅は\(width)です。") } func setting(width: Int, he

  • 【Swift】関数の返り値を使わないでもOKにする

    Swiftは型安全な言語である一方、柔軟性もあります。 関数に返り値を定義していても、実際には使わない場合もありますが、そんな時でもSwiftのコンパイラは以下のような警告を出してきます。 warning: result of call to '関数()' is unused SwiftUIでアプリを作っている時にもそうです。 func calc(num: Int) -> Int { let price = 100 * num print("お会計は\(price)円です。") return price } calc(num: 2)

  • 【Swift】関数の引数にデフォルト値を設定する

    Swiftでは、関数の引数にデフォルト値を設定することができます。デフォルト値のままでよければ、関数の呼び出し時にその引数を省略できますし、通常通り引数を渡すこともできます。 やり方は、関数を定義するところで、引数の型指定の後に、デフォルトにしておきたい値を設定します。 func reserve(num: Int, lang: String = "日本語") { print("\(num)名様の予約を承りました。\n言語:\(lang)") } reserve(num: 2) reserve(num: 4, lang: "英語") 実行結果は以下の通りです。 2名様

  • いきなり大きくなることもある

    ITの世界では、 作ったアプリやプログラムが、いきなり大きくなることもあります。 今や世界の超巨大企業となっているGoogle、Apple、Facebookなど、 時価総額も100兆円オーダーだったり(2023年9月上旬ではFacebook(メタ)は約96兆円)、 ユーザー数も億超えです。 Facebookにしても、 まだ20年経っていません。 ソーシャル・ネットワーク amzn.to 1,000円 (2023年09月08日 08:37時点 詳しくはこちら) Amazon.co.

  • 【Swift】複数の引数を持つ関数を作る

    関数は、一つだけでなく複数の引数を持つことができます。 作り方の基本は同じです。 func match(male: String, female: String) { print("\(male)さんと\(female)さんのマッチングが成立しました。") } match(male: "太郎", female: "花子") // 太郎さんと花子さんのマッチングが成立しました。 3つ以上も同様で、カンマで区切って引数を追加して行きます。 世界一シンプルなはじめてのSwiftUI 決定版: かんたんにiOSアプリを作って遊んでみる SwiftUI入門

  • 【Swift】関数の引数名を省略する

    Swiftでは、関数を呼び出す時に、引数名を省略することができます。 やり方は簡単で、引数名の前に、_(アンダーバー)を付け、半角スペースで区切るだけです。 /// 入力された数を3倍にして返す func triple(_ input: Int) -> Int { return input * 3 } triple(2) // 6 triple(5) // 15 tripleを呼び出す時に、()内に、引数名を書かず、そのまま引数を渡すことができています。 Swiftではよく出てくる書き方ですが、初めてだと、なんで"_"が付いているのかよく

  • 【Swift】関数で外部引数名を使う

    Swiftでは、関数の引数名を工夫することができます。関数を使う人向けの引数名と、関数内部での引数名を別にすることができます。 func send(to name: String) {    print("\(name)さんに送りました。") } send(to: "山田")        // 山田さんに送りました。 この例では、(お中元やお歳暮などの宛先に)引数として"山田"を渡しています。 関数内部では、それがnameという名前で扱われています。外部引数名には、toを使っていることで、呼び出す時に引数として"物"

  • 【Swift】関数を使う

    Swiftにも、関数の仕組みが備わっています。というよりむしろ、Swiftは関数型プログラミング言語ですので、本質的な部分です。 関数を使うことで、一連の処理に名前を付け、一つにまとめることができます。名前が付いているため、後から何度も呼び出すこともできます。 func calc(input: Int) -> Int {    var result = 0    result = input * 3        return result } calc(input: 2)  

  • 【Swift】辞書の値を削除する

    辞書の値を削除するには、その値にnilを代入してあげます。 var visit = ["イギリス" : 1, "フランス" : 0, "ドイツ" : 1, "月面" : 0] visit["月面"] = nil print(visit) // ["ドイツ": 1, "イギリス": 1, "フランス": 0] 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】辞書に値を追加する

    辞書に値を追加するには、新しいキーと共に値を設定してあげます。 var visit = ["イギリス" : 1, "フランス" : 0, "ドイツ" : 1] visit["イタリア"] = 2 print(visit) // ["ドイツ": 1, "イギリス": 1, "フランス": 0, "イタリア": 2] 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】辞書の値を更新する

    辞書の値を更新する時には、要素にアクセスし新しい値を代入してあげます。 var visit = ["イギリス" : 1, "フランス" : 0, "ドイツ" : 1] visit["イギリス"] = 2 print(visit) // ["フランス": 0, "ドイツ": 1, "イギリス": 2] 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】辞書型を扱う

    Swiftでは、辞書型のデータも扱うことができます。 例えば、ある人が訪問した国と回数のペアを保持する変数を作ってみました。 var visit = ["イギリス" : 1, "フランス" : 0, "ドイツ" : 1] // [String : Int]型 let count = visit["イギリス"] // 1 配列同様、同じ型のデータを一つにまとめて扱うことができます。 配列の場合は、要素へのアクセスは添字(インデックス)を指定するものでした。ですが、単なる数字である添字よりも、文字列などを元に(キーにして)アクセスしたい場合もあります。そんな時には、辞書型を

  • 【Swift】繰り返し処理をする(while文)

    Swiftで繰り返し処理を行うのに、while文があります。 var i = 0 while i < 3 { print(i) i += 1 } // 0 // 1 // 2 whileの後の条件式がtrueの間、{ }内を繰り返し実行します。 while 条件式 { 条件式がtrueの間、繰り返し行う処理 } 世界一シンプルなはじめてのSwiftUI 合本版2: 実際のアプリみたいなものをカンタンに作ってみる SwiftUI入門 amzn.to 1,200円 (2023年09月05日 19:39時点 詳しくはこ

  • 【Swift】繰り返し処理をする(for文)

    Swiftでも繰り返し処理を行えます。ここでは、for-inを使ってみましょう。 var array = [1, 2, 3] for element in array { print(element) } // 1 // 2 // 3 inの後に指定した配列から、一つずつ要素を取り出し、 { }内でelementという名前として扱えるようにし、{ }内を繰り返し実行しています。 var devices = ["iPhone", "iPad", "watch"] for dev in devices { print(dev) } // iPhone //

  • 【Swift】乱数を生成する

    Swiftでは、型が乱数を生成するメソッドを持っていますので、それを使うことで乱数の生成を実現できます。 Int.random(in: 1...6) // 1〜6の中のランダムな整数 Int.random(in: 1..<6) // 1〜5の中のランダムな整数 Double.random(in: 0...1) // 0〜1の間の小数 Bool.random() // true/false サイコロのようなギミックを作ってみたり、できることが増えます。 世界一シンプルなはじめてのSwiftUI 合本版2: 実際のアプリみたいなもの

  • 【Swift】複数の条件分岐の仕方(switch文)

    else if以外に、switch文による複数の条件分岐をすることができます。 let value = 2 switch value { case 1: print("1です") case 2: print("2です") case 3: print("3です") default: print("1,2,3以外です") } // 2です switch文は、値が取りうる全てのcaseを網羅している必要があります。そのため、数値や文字列によって分岐する時には、defaultの場合も書くことで、case以外の他全ての場合を網羅することができます。

  • 【Swift】三項演算子の使い方

    普段見慣れないものですが、慣れると使いやすい演算子に、 三項演算子があります。 let input = true let result = input ? 1 : -1 // 1 Bool値 ? trueの時の値 : falseの時の値 のように使います。 世界一シンプルなはじめてのSwiftUIのイベント・ジェスチャ篇 SwiftUI入門 amzn.to 600円 (2023年09月05日 19:24時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】変数名の付け方

    よい変数名を付けると、コードも読みやすくなり、 後々も楽になります。 Swiftでは、変数名の付け方にガイドラインがあり、 変数や定数の名前は、小文字で始め、英語の名詞として読めるものが推奨され、 慣習となっています。 var room = 602 変数名は、日本語も可能ではありますが、デファクト(事実上の標準)としてアルファベットや数字です。 var 猫 = “ミー“ // 一応、動くことは動く また長くなりそうな時は複数の単語から作り、 始まりは小文字で、以降の単語の頭文字を大文字にする、 ロワーキャメルケースが使われています。 var firstClass =

  • 【SwiftUI】ビューを横に並べて配置する

    ビューを横に並べて配置するには、HStackを使います。HはHorizontal(水平の)の頭文字だと思います。 import SwiftUI struct ContentView: View { var body: some View { HStack { Text("おはよう") Text("こんにちは") Text("こんばんは") } } } 世界一シンプルなはじめてのSwiftUI: かん

  • 【SwiftUI】ビューを縦に並べて配置する

    ビューを縦に並べて配置するには、VStackを使います。VはVertical(垂直の)頭文字だと思います。 import SwiftUI struct ContentView: View { var body: some View { VStack { Text("おはよう") Text("こんにちは") Text("こんばんは") } } } 世界一シンプルなはじめてのSwiftUI: かんたんに

  • 【SwiftUI】フォントの大きさを変える

    ビューのフォントを変えるには、fontモディファイアを使います。 import SwiftUI struct ContentView: View { var body: some View { VStack { Text("こんにちは") .font(.largeTitle) Text("こんにちは") .font(.headline) Text("こんにちは")

  • 【SwiftUI】複数行のテキストを表示する

    複数行に渡るテキストを表示するには、"""(二重引用符×3)で、表示したいテキストを囲んだものをTextに渡します。 import SwiftUI struct ContentView: View { var body: some View { Text(""" こんな風に インデントや 改行も そのまま表示されます。 """) } } スペース、インデントや改行も、"""で囲った中の通り、そのまま表示されます。 世界一シンプルなはじめてのSwiftUIの次に読む本 SwiftUI入門 amzn.to 600

  • 【SwiftUI】Colorの中で定義されている色名

    Colorを使うと、文字や背景の色を変えたりすることができます。(例:.foregroundColor(.red)) その中で、初めから定義されている色があります。 red orange yellow green mint teal cyan blue indigo purple pink brown white gray black clear 世界一シンプルなはじめてのSwiftUI 決定版: かんたんにiOSアプリを作って遊んでみる SwiftUI入門

  • 【SwiftUI】テキストの色を変える

    テキストの色を変えるには、foregroundColorモディファイアを使います。 import SwiftUI struct ContentView: View { var body: some View { Text("こんにちは") .foregroundColor(Color.blue) } } 装飾したいビュー、要素にモディファイアをくっつけるだけなのでカンタンです。 なお、下のようにforegroundColorの引数をもう少し省略することができます。なぜかと言えば、foregroundColorの引数はCol

  • 【SwiftUI】テキストの表示

    テキストも簡単に表示できます。 import SwiftUI struct ContentView: View { var body: some View { Text("こんにちは") } } Textビューを使いました。 Text()もビューの一種です。 世界一シンプルなはじめてのSwiftUI: かんたんにiOSアプリを作って、いじってみる SwiftUI入門 amzn.to 600円 (2023年09月03日 23:28時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】比較演算子のまとめ

    値同士を比較して、if文で使ったりできます。 var a = 1 var b = 2 a > b // a < b // a == b // false a != b // true == -> 二つの値が等しいかどうか。等しければ、true。 != -> 二つの値が異なるかどうか。異なっていれば、true。 Swiftでは、数値だけでなく、文字列なども比較演算子で直感的かつ簡単に比較することができます。(C言語だと、strcmpといった関数を使います。) 世界一シンプ

  • 【Swift】複数の条件で分岐する(else if)

    一つの条件式による判別だけでなく、複数の条件式による判別もできます。 var value = 2 var result = "" if value > 3 { result = "high" } else if value > 0 { result = "middle" } else { result = "low" } print(result) // middle 一つ目の条件式からtrueかどうかが判定され、初めにtrueになった節が実行されます。else ifの条件式は2つより多くあっても平気です。 (ただ、多

  • 【Swift】条件分岐をする(if-else)

    ifの条件式がtrueの時に処理を行うことだけでなく、falseの時にどうするかを、それぞれ分けて実行することができます。 var value = 0 if value > 0 { print("正の数です") // こちらは実行されない } else { print("0以下の数です") // こちらが実行される } if-elseを使うと、if節か、else節のどちらかが実行されます。 if 条件式 { // 条件式がtrueの時に実行される } else { // 条件式がfalseの時に実行される } 世

  • 【Swift】条件分岐をする(if文)

    if文を使うと、処理を実行するかどうかを条件によって分けることができます。 var value = 1 if value > 0 { print("正の数です") } ifの後の条件式が、trueの時に{}内が実行され、falseの時には{}内は実行されません。 if 条件式 { // 条件式がtrueの時に実行される } 世界一シンプルなはじめてのSwiftUI 決定版: かんたんにiOSアプリを作って遊んでみる SwiftUI入門 amzn.to 3,600円 (2023年09月05日 08:49時点 詳しくはこちら)

  • 【Swift】論理和をとる(OR演算)

    論理和も計算することができます。 var cond1 = true var cond2 = true var cond3 = false cond1 cond2 // true cond1 cond3 // true cond1 cond2 cond3 // true いずれかの項がtrueであれば、論理和の結果もtrueになります。全ての項がfalseの時のみ、論理和の結果がfalseになります。 世界一シンプルなはじめてのSwiftUI 合本版2: 実際のアプリみたいなものをカン

  • 【Swift】論理積をとる(AND演算)

    論理積も計算することができます。 var cond1 = true var cond2 = true var cond3 = false cond1 && cond2 // true cond1 && cond3 // false cond1 && cond2 && cond3 // false 各項が全てtrueの時のみ、論理積の結果もtrueになります。 世界一シンプルなはじめてのSwiftUI 合本版2: 実際のアプリみたいなものをカンタンに作ってみる

  • 【Swift】真理値を否定する(Not演算)

    Bool型の真理値を否定する、Not演算もできます。!を変数の前に付けるだけです。 var condition = true let not = !condition // false 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】真理値を反転する

    Bool型の変数の値、真理値を反転するにはtoggleメソッドがあります。 var condition = true condition.toggle() // false 値を変えるのに、true/falseを変数にそのまま代入して変えることもできますが、toggleメソッドは真か偽か本質的に値はどちらでもよく、単に状態を切り替えたい場合などにも有用です。 toggleメソッドは、SwiftUIでもよく使われます。 世界一シンプルなはじめてのSwiftUIのイベント・ジェスチャ篇 SwiftUI入門 amzn.to 600円 (2023

  • 【Swift】真理値を表現する

    Swiftには、ある命題が真か偽か、真理値を表現するBool型という型もあります。Bool型の変数は、trueかfalseの2値です。 var swiftIsFun = true var condition = false 世界一シンプルなはじめてのSwiftUIの基礎編2 SwiftUI入門 amzn.to 600円 (2023年09月05日 19:22時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】配列に要素が含まれているかどうかを調べる

    配列に要素が含まれているかどうかを調べるには、containsメソッドを使います。引数には、調べたい要素を渡します。 var nums = [1, 2, 3, 4] nums.contains(3)          // true nums.contains(5)          // false 返り値はBool型で、true/falseです。 世界一シンプルなはじめてのSwiftUI 決定版: かんたんに

  • 【Swift】文字列の文字数をカウントする

    文字列の文字数をカウントするには、countメソッドを使います。 let str = "やっほー" str.count            // 4 メチャクチャ簡単ですね。 世界一シンプルなはじめてのSwiftUIのちょっと実践編 SwiftUI入門 amzn.to 600円 (2023年09月04日 20:19時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】文字列中に変数展開

    変数(定数)の値を文字列の中で使いたい場合があります。 そういう時には、\(バックスラッシュ)を付けた括弧の中に変数(定数)を書きます。 var name = "山田" let message = "\(name)さん、こんにちは。"   // 山田さん、こんにちは。 単に変数を書くだけだと、その変数名が表示されます。 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら)

  • 【Swift】文字列同士の結合

    文字列同士は結合することができます。 let str1 = "こんにちは。" let str2 = "お元気ですか" let str3 = str1 + str2    // こんにちは。お元気ですか +演算子を使うだけのとても直感的な方法ですね。 世界一シンプルなはじめてのSwiftUIのちょっと実践編 SwiftUI入門 amzn.to 600円 (2023年09月04日 20:19時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】配列同士の結合

    配列同士を結合することもできます。 let num1 = [1, 2, 3] let num2 = [4, 5, 6] let num3 = num1 + num2 // [1, 2, 3, 4, 5, 6] +演算子で直感的に結合することができてしまいます。 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら) Amazon.co.jpで購入する

  • 【Swift】配列の任意の位置に要素を追加する

    配列内の任意の位置、好きな場所に要素を追加するには、insertメソッドを使います。 var nums = [1, 2, 4, 5] nums.insert(3, at: 2) // [1, 2, 3, 4, 5] 第一引数として追加したい要素、第二引数として追加する位置(インデックス)を渡します。 配列.insert(追加したい要素, at: 追加する位置) 世界一シンプルなはじめてのSwiftUIの基礎編 SwiftUI入門 amzn.to 600円 (2023年09月04日 17:12時点 詳しくはこちら)

arrow_drop_down

ブログリーダー」を活用して、古谷正雄さんをフォローしませんか?

ハンドル名
古谷正雄さん
ブログタイトル
世界一シンプルなはじめてのSwiftUIのブログ
フォロー
世界一シンプルなはじめてのSwiftUIのブログ

にほんブログ村 カテゴリー一覧

商用