Qiita 7 - キータぞ、来たぞ、キータだぞー (768レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
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
19(3): 2025/09/14(日)21:05 ID:gAWV5uS0(1) AAS
いつも的外れな記事批判を繰り返している連投クンは本気でわからないようだな
元データを改変せずに新たに逆順を返す再帰関数を書きたいのならば例えばこうする
func ReverseArray(input []int) []int {
if len(input) == 0 {
return nil
} else {
return append(ReverseArray(input[1:]), input[0])
}
}
64(4): 2025/09/22(月)11:19 ID:XiCaSJNI(1) AAS
記述や可読性の差が大きい
start..endの個数
【Rust】 end-start個
【Pascal】 end-start+1個
startからn個
【Rust】 start..(start+n)
【Pascal】 start..(start+n-1)
このように間違えやすく見にくい+1や-1が
半開区間を採用のRustでは不要となる
166(3): 2025/09/28(日)22:05 ID:aU9wcwp7(6/11) AAS
>>164
正直に白状しろ。心当たりが全くなくはないはずだ。
C++ STLの.begin()と.end()の組の.end()を書くときにも、もやもやする感覚が常に伴うな。
『リーダブルコード』に、
プログラミングの命名規約では、包含/排他的範囲にbeginとendを使うことが多い。
でも、endは少しあいまいだ。例えば、「本の終盤(the end of the book)を読んでいる」の
「end」は包含的だ。残念ながら英語には「ちょうど最後の値を超えたところ」を意味する簡潔な
言葉がない。
と述べられている通り。簡潔な言葉がないなら作れば良かったと思う。例えば、endの次(next)だから
nendとか。無闇に造語すべきではないが、どうしても必要なら作れば良い。bitは成功例だろう。
省5
171(3): 2025/09/28(日)22:15 ID:aU9wcwp7(7/11) AAS
>>167
低学歴ではないが、低学歴という煽りもここでは意味がないね。プログラム言語なんて小学生でも
分かる程度のものでしかないし、一般的感覚も自然言語と高校までの数学によって形成されるものだから。
そこから乖離した屁理屈をあれこれほざいても、ギークのキモい戯言でしかない。
179(3): 2025/09/28(日)22:38 ID:jJ7lr+aR(2/4) AAS
区間指定の文法を持つ最近のメジャーなプログラミング言語では半開区間を簡単に表記できるようになっている
例えば
GoやPythonなどでは list[start:end]
C#やRustなどでは list[start..end]
いずれもendを含まない半開区間を意味している
188(4): 2025/09/28(日)23:48 ID:aU9wcwp7(11/11) AAS
>>187
閉区間が自然だとは全く主張していないぞ。
・閉区間で書くのが便利な場合も半開区間で書くのが便利な場合もあるので、両方の書き方を
提供するのが良い(勿論、前者の場合には閉区間が自然ということになるが)
・閉区間には左右対称、半開区間には左右非対称の記号を割り当てるのが自然で、バグを
生みにくい
と主張しているだけ。
211(3): 2025/10/01(水)23:34 ID:a34LDfpM(1/3) AAS
AA省
216(4): 2025/10/01(水)23:51 ID:a34LDfpM(3/3) AAS
>>214
馬鹿には皮肉の解説が必要だったか。情報理論的な効率性を徹底的に追求したのが圧縮ファイルだろ。
それは人間には勿論読めないが、もう少し緩く追求した半開区間に..を使う表記も人間にはやっぱり
間違いやすい。お前がそんなことはないと言い張るなら、さぞかし凄い超人なんだろうねーという皮肉。
たった1文字追加するだけで効率性と間違えにくさのバランスが取れた表記になるのに、ムキになって
否定するのは愚か。
275(4): 2025/10/10(金)12:28 ID:ckTDD7bx(3/7) AAS
最適化のなしかありかで挙動の変わる言語があるらしいけどそういうのは最悪。
fn main() {
let mut sum: i8 = 0;
let mut num: i8;
num = 100;
sum += num;
num = -10;
省7
279(5): 2025/10/10(金)19:59 ID:EwscZStB(1/4) AAS
>>278
オーバーフローチェックのコストはとんでもなく高いんだよ。
演算命令1つ行なう毎に、そこで立った条件フラグによる条件分岐を毎回行なう必要がある。
これはコンパイラが行なうコードの並べ替えやループの展開やベクトル化などを全て阻止してしまう。
劇的に遅くなることが判っているよ。
さらにアセンブリ言語を書いたりコンパイル結果を見たりしたことがあれば理解しやすいけど、
条件フラグを変更せず保持したまま演算を行ないたいことが多いんだよ。
そのため条件フラグを変更しない演算命令が一部用意されていて、それらが活用されている。
常にオーバーフローフラグを必要とするならそれもできなくなってしまう。
条件フラグをレジスタやメモリに一時退避させるコストもかかってくるんだよ。
316(5): 2025/10/14(火)01:29 ID:QdU4k/SE(1) AAS
配列は静的メモリ確保なのに動的メモリ確保とごっちゃになっている素人w
440(3): 2025/10/29(水)23:35 ID:xnDexBBj(1) AAS
>>439
C/C++は弱い型付け言語なのでサイズの異なる型への自動変換が起きることに加えて8bit環境以外では
Cでは sizeof('a') == sizeof(123)
C++では sizeof('a') != sizeof(123)
などの無茶苦茶な仕様が混乱に拍車をかけているよな
469(3): 2025/11/03(月)13:41 ID:3NKnizwX(1/3) AAS
Rustはgithubにある面白そうなリポジトリでgit cloneしてビルドしてみると外部クレートでビルドが失敗するパターンが多くて損してる希ガス。
Rust開発チームの方針なのだろうけどよく使われるライブラリは保守まで組織的に面倒見る体制は必要だと思う。
492(3): 2025/11/06(木)02:34 ID:dgxZE4EV(1/2) AAS
Qiita Conference 2025 Autumnゲスト講演の人
『今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!』
外部リンク:speakerdeck.com
相変わらずデッタラメなこと言ってんなあw
素人に「なんかすごそう」と思わせれば勝ちって商売かな?
Qiitaも技術的正確性問わない方針は良いんだけどさ(良くないけど)、こんなのに発表の場与えてると詐欺の片棒担ぐことにな
732(4): 03/16(月)20:15 ID:BE2T/V4b(1) AAS
『C言語にも配列のlengthプロパティをください ― 配列ポインタ型でサイズ安全な関数引数を実現する』
フツー構造体を定義するところを一見便利そうでその実不便な方法を提案する人
756(3): 03/19(木)02:07 ID:/Wzj236o(1) AAS
『C言語の標準ライブラリを自作して学ぶ、安全なメモリ管理と文字列操作の真髄』
外部リンク:qiita.com
オーバーフローチェックは重要、みたいなこと書いてるのに
> // 実データの前に size_t 分のヘッダ領域を確保
> block = malloc(sizeof(size_t) + size);
冒頭のコードでオーバーフロー無視してるのはなあ、無能すぎね? つか42tokyoかあ。
757(4): 03/19(木)03:59 ID:r1H5OpTt(1) AAS
>>756
これで満足か?
#include <stdckdint.h>
size_t total_size{};
if (!ckd_add(&total_size, sizeof(size_t), size)) {
block = malloc(total_size);
}
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.051s