質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

4823閲覧

swiftのURL()がなにものなのかがわかりません。

pegy

総合スコア243

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/06/13 01:44

swift

1let url : URL = URL(string:"https://example.com/example.html")!

以上の様な当たり前のコードがあるのですが、URL()が理解ができません。

例えばPHP言語では(そもそもURLという型がないと思うのですが)以下の様に記述します。実際には文字列として扱っていると思います。

php

1$url = "https://example.com/example.html";

swiftにはurl型があってurl:URLと指定しているのはわかるのですが、
URL()の表現がわかりません。
url:URL型指定するだけでは足りずURL()を使用している理由はなんでしょうか?
②また、これは何かのクラスや構造体のメソッドなのでしょうか?

URL()のところからJump to definitionしてみたのですが、ヒントの様なものが得られず、お尋ねさせていただきました次第でございます。

よろしくお願いもうしあげます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

URL(⋯) では URL 型のインスタンスを生成しています。

回答 ②

URL(string:"https://example.com/example.html")! は、URL 型が持っている イニシャライザー を実行しているコードで、次のように書き換えることも可能です。

swift

1let url : URL = URL.init(string:"https://example.com/example.html")!

この書き方にすれば、カーソルを .init のところに合わせて Jump to definition もできるので、そうやって定義を眺めてみると何か掴めるかもしれません。

回答 ①

Swift では原則的に、代入式 左辺 = 右辺 の両辺は同じ型にする必要があります。

左辺 let url : URL で、変数 url の型が URL と指定されているので、右辺にも URL 型の値を指定する必要があります。単に "https://example.com/example.html" だけだと String 型の値になってしまうため、URL 型のイニシャライザーを使って、文字列から URL 型の値を生成しています。

投稿2020/06/13 02:38

TomohiroKumagai

総合スコア441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2020/06/13 07:35

ありがとうございます、よくわかりました。また、initを使ってDefinitionも確認することができました。 一つ、お話が逸れてしまって、この機会にお尋ねしたいのですが、initを調べる時にエディターエリアの上部に M init(string:)の様に、initの説明についてMの枕文字がついていて、これでは予測変換する時にも、Tやfなどがついていたりもすると思います。 MethodやグローバルでのFunctionを表現していたりするのかと思いますが、これらすべてのものが理解できているわけではないので、リストの様な物を探しているのですが、その様なものはあるのでしょうか? ご存知であればご教示いただきたく、お願い申し上げます。
TomohiroKumagai

2020/06/13 10:05

言われてみれば、シンボルの種類を意味する記号のリストの存在は把握していないです。かつて「Xcode 5 徹底解説」という本を書いた時に、その 18 ページでそのようなリストを掲載したことはあったのですけれど、これも今となっては古すぎて現在とはちょっと違っていそうです。 どんな枕文字があるかを調べて Qiita 等にまとめてみるのも面白いかもしれませんね。
pegy

2020/06/13 14:44

承知いたしました! ありがとうございます。
guest

0

URL - Foundation | Apple Developer Documentation

まあ、てきとーにぐぐれば解説が出てくると思いますが、URLクラスでやったほうがいろんな便利なメソッドが使えるってことでいいのでは。

投稿2020/06/13 02:32

y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pegy

2020/06/13 07:35

コメントありがとうございます。理解することができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問