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

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

ただいまの
回答率

88.92%

returnについて

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 155

admjm

score 7

returnについての質問です。

func test (n: Int ) -> String {
return "  aaa  "
}
let num = test( n: 10 )
print ( num )
出力 aaa

returnと引数名の型をバラバラにしたらどうなるんだろう?と思い、上記のような事をしてみました。
numに代入されたのがaaaだという事はわかったのですが、(n:10) の「10」は何処に行ってしまったのでしょうか..代入されないのに何故エラーにならないのか疑問で仕方ありません..
(n:10)は、(n:100)でも(n:1000)にしても同じ結果でした。
( n ) や( n: ) 、(n: Int )ではエラーになりました。
低レベルな質問でお恥ずかしいのですが、是非ご教授頂けないでしょうかm(__)m

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

0

(n:10) の「10」は何処に行ってしまったのでしょうか..

使われないまま破棄されます。

たとえば、数学で同じような例を考えてみたいと思います。

f(x) = 10

という関数を定義したとします。
このとき、f(x)の値は、xをどんな値にしても10しか戻ってきません。
xは使っていないので当然です。

プログラムであっても、基本的な考え方はこれと同じです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/15 16:07

    簡潔でとてもわかりやすかったです‼️
    基本的な考え方という概念がそもそもあまりなかったので、改めてそれを念頭に置きながら勉強を頑張って行こうと思いました‼️
    皆様からの温かい解答ばかりで凄く悩みましだがベストアアンサーはTsukuさんにさせていただきましたm(__)m
    本当にありがとうございました‼️

    キャンセル

0

func testは
引数nを受け取って"aaa"をreturnしているわけですけど

nに関しては受け取っただけって形になってます。
処理内で使用されていないのでエラーにならないです。

試しに上記コードでreturn n とするとエラーになるはずです。(Stringをreturnするように記載されているが、intをreturnしているため)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/15 15:29 編集

    追記で

    (n: 10)の10を使用したいとのことでしたら

    -> String
    と書かれているところを
    -> Int
    に変更して
    return n
    にする

    printの部分で文字列変換してあげるといいです。(文字変換はしなくてもいいかもです)

    キャンセル

  • 2020/07/15 15:52

    こんな質問しても相手にされないだろうなー..と不安に思いながら投稿したのですが、すぐに返信があってビックリしました😭
    お陰様で理解する事が出来ました‼️わかりやすい回答、本当にありがとうございましたm(__)m‼️

    キャンセル

0

(n:10) の「10」は何処に行ってしまったのでしょうか

関数test(n:Int)の仮引数nに代入されました。(渡された)
test内ではnを使ってないので無視したことになります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/15 15:56

    ここにいる方達はみんな優しくて泣きそうになります😫
    わかりやすく丁寧に解答くださり本当にありがとうございましたm(__)m

    キャンセル

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

  • ただいまの回答率 88.92%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る