Qiita 7 - キータぞ、来たぞ、キータだぞー (768レス)
1-

1: 2025/09/13(土)12:24 ID:mucntwOq(1) AAS
Hello hackers !
Qiitaは、エンジニアリングに関する知識を記録・共有するためのサービスです。
コードを書いていて気づいたことや、自分がハマったあの仕様について、
他のエンジニアと知見を共有しましょう ;)

外部リンク:qiita.com

Qiita(キータ)は、Incrementsが運営するプログラミング情報のナレッジコミュニティ。
2016年現在で日本最大のプログラマーコミュニティとされている[1]。

外部リンク[html]:internet.watch.impress.co.jp

前スレ Qiita
2chスレ:tech
省10
2
(1): 2025/09/14(日)01:56 ID:CZ0V8fQ4(1) AAS
『【Go】配列を再帰的に逆順にするサンプルコードを書いてみた』
> 再帰を使うことで、ループを使わずにエレガントに実装できる。
 
根本的なところで誤解してる人な模様。
3: 2025/09/14(日)02:53 ID:bGojT+ur(1) AAS
>>2
一般論として
再帰で表現した方が抽象度が高く理解しやすく定義そのまま表現できることが多い
特に末尾再帰をコンパイラがループへ変換してくれて実行効率が同等ならば全ての点で再帰による表記が勝る
4: 2025/09/14(日)12:10 ID:RhzWmJy7(1) AAS
入力配列と出力配列渡してループで処理するわ
5: 2025/09/14(日)12:59 ID:ZqIkDajJ(1/8) AAS
AA省
6
(1): 2025/09/14(日)13:06 ID:ZqIkDajJ(2/8) AAS
記事のスライス操作版のコードは

> // ReverseArrayWithSlice はスライス操作で配列を逆順にする(再帰)
> func ReverseArrayWithSlice(arr []int) []int {
>   // ベースケース: 要素が1つ以下なら逆順にする必要なし
>   if len(arr) <= 1 {
>     return arr
>   }
>
>   // 最初の要素を取り出し、残りを再帰的に逆順にしてから結合
>   return append(ReverseArrayWithSlice(arr[1:]), arr[0])
省2
7
(1): 2025/09/14(日)13:28 ID:ZqIkDajJ(3/8) AAS
そもそもの話として、ひとつの記事の中で複数の関数が引数だとか配列の内容を書き換えるのかどうかとか仕様が合ってないから比較になってないのよね。
8: 2025/09/14(日)13:42 ID:yOrWt/NI(1) AAS
>>7
問題はそこだね
ループでも書けるよとかの筋違いな批判は要らんて
9
(3): 2025/09/14(日)14:21 ID:ZqIkDajJ(4/8) AAS
・引数は配列を渡すのみ
・内容を逆にした配列を返し、引数で渡した配列の内容は書き換えない
という条件にしたとして、繰り返しで書くより再帰のほうが良い書き方ができるだろうか?

func ReverseArrayWithFor(arr []int) []int {
  n := len(arr)
  result := make([]int, n)

  for i := 0; i < n; i++ {
    result[i] = arr[n - i - 1]
  }

  return result
省2
10: 2025/09/14(日)15:20 ID:wFXoVVHv(1) AAS
>>9
大昔からの古典すら知らない無知
LISPも知らないんだろうな
11: 2025/09/14(日)15:24 ID:ZqIkDajJ(5/8) AAS
GoとLISPの区別もつかない人とはなあw
1-
あと 757 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.016s