[過去ログ] スレ立てるまでもない質問はここで 161匹目 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
177(1): 2022/09/24(土)15:06 ID:wgmwIRyk(1) AAS
>>175
まともなプログラミング言語ならば
文字列は定数ならばtext segmentすなわちプログラミングコードと同じ読み取り専用エリアに配置されて有利です
一方で可変な文字列かつサイズ固定ならばdata segmentすなわに読み書き可能なエリアに配置されます
さらにサイズ可変な文字列はheap segmentつまり実行中に動的に確保するエリアに配置されて最もコストが高くなります
このような違いがあるため文字列は定数かどうか、可変の場合はサイズが固定なのかサイズまで可変なのかどうかが、非常に重要になってきます
178(1): 2022/09/24(土)15:22 ID:/lLAu03F(2/2) AAS
>>176
外部化してる、そのファイルを探して、修正項目も探すのがだるいんだよね
国際化しなければメリットないってことか
直接書いた方が修正楽だもんなぁ
>>177
効率考えると定数化したほうがいいんですね
でも、めんどいし分かりやすいから直接書いた方が修正するコストは下がると思うんだよね
エラーコードまで定数化する意味はないですよね?
例えば、200で返せばいいものを定数化してconst OK=200みたいにして
OKにするとか
179: 2022/09/24(土)15:34 ID:TmEhV7P0(1) AAS
>>178
文字列を直接書くとか定数ファイルを使うとかいう話は、
その変な仕様の言語もしくは変なローカル規約のせいであって一般的な話じゃない。
そういう不便な状況になっているのがローカルな規約のせいなら規約を変えるべきであるし、
変な言語の仕様のせいならばその言語を変えるか、我慢して使い続けるしかない。
180: 2022/09/24(土)17:40 ID:rKhoIQX5(1) AAS
>>138
Rubyで、{・・・} の方のブロックって、普通の場所にいきなり書けたっけ?
181(3): 138 2022/09/24(土)22:26 ID:L5pk3riv(1) AAS
Ruby でファイルのトップレベルでも、do〜end, { } を使える。
以下は両方とも、[2, 3] と出力される
VSCode の拡張機能・Code Runner で、
選択したコード片を右クリックメニューから実行する
ary = [ 1, 2 ]
p res_1 = ary.map { |num| num + 1 }
res_2 = ary.map do |num| num + 1; end
p res_2
182(2): 2022/09/25(日)01:00 ID:7iyOFwBx(1) AAS
>>181
Rubyだけ特異な表記
ラムダ式(やクロージャや無名関数など)に対して多くの言語はその引数は中括弧ブロックの外に来る
例えばJavaScriptだと
let arr = [1, 2];
let res1 = arr.map(num => num + 1);
let res2 = arr.map(num => {
return num + 1;
});
例えばRustだと
let arr = [1, 2];
let res1 = arr.map(|num| num + 1);
let res2 = arr.map(|num| {
num + 1
});
このように全く異なるプログラミング言語でもほぼ同じ表記になる
mapはあくまでも関数だから丸括弧を取る
そしてmap関数の引数としてラムダ式(やクロージャや無名関数など)が来る
そして波括弧はそのラムダ式(やクロージャや無名関数など)の中身が複数行(今回の例のように1行でも可)の時にブロックとして用いる
特異な表記をしたり特異な解釈をするRubyは学習しない方がよいかもしれない
183: 2022/09/25(日)01:10 ID:xiicOjyE(1) AAS
>>182
恥の上塗りやめて~~w
184: 2022/09/25(日)01:33 ID:hevh/BVA(1) AAS
>>182
Rubyを学ぶと他の言語を学ぶ障害になるよな
Rubyは色んなことを省略しまくって記述するために色んなところが歪んでいる
185: 2022/09/25(日)02:20 ID:gTVpeMPe(1) AAS
タイプ数を減らそうとする方針のプログラミング言語は消えていく
かつて一世を風靡したPerlは没落して消えた
Rubyも没落が激しく消えていく運命
186: 2022/09/25(日)02:22 ID:kQGcz7Hc(1) AAS
Matzは尊敬してるけどRubyは好きではない
187: 2022/09/25(日)05:35 ID:PDKGWlWe(1) AAS
おれは逆、Ruby自体はそこそこよく考えられた言語だと思うけどMatzは嫌い
188: 2022/09/25(日)07:03 ID:eaSb619B(1) AAS
help コマンドを打つと
GNU bash, version 5.0.11(1)-release (x86_64-pc-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
...
と出てきますがhelpを囲むものが左側はバッククォートで右側はアポストロフィなんですが何か理由がありますか?
189: 2022/09/25(日)07:35 ID:fXZ+ASwp(1) AAS
日本語のカギカッコと同じで、右と左で違う記号で囲んでるだけ
プログラム的な話じゃなくて英語の話
190: 2022/09/25(日)09:56 ID:gPkb1GyX(1) AAS
本当は‘で開いて’で閉じる(“で開いて”で閉じる)ものなんだけど
ASCIIの時は文字数をゴリゴリに節約したかったんでそれぞれを'と"に纏めちゃった
191: 2022/09/25(日)10:06 ID:ggzfW2zp(1) AAS
‘ と ’なんだよな フォントの形が違って見えるだけ
192: 2022/09/25(日)15:40 ID:biezUmQw(1) AAS
厳密には ` はグレーヴアクセントだし ' はアポストロフィなので
引用符として使っているのはどちらも代用
バックスラッシュやシングルクォートのほうが馴染みがあるけど実は通称だったりする
193: 2022/09/25(日)16:09 ID:utXfanRE(1) AAS
UTF8に無事に統一された現代は本物も使い分けできるから困らん
5chのように古いまま取り残されたシステムもあるけど文字参照が通るから使い分けられるんじゃないかテスト
‘ ' ’
“ " ”
194: 2022/09/25(日)20:06 ID:v2Pj0t10(1) AAS
""でいいです。。
195: 138 2022/09/25(日)23:24 ID:EaCGv7B5(1) AAS
>>181
Ruby では、Enumerable モジュールの戻り値は、
ブロックの有無によって、2種類ある
map { |item| ... } -> [object]
map -> Enumerator
ブロックを渡さない場合は、Enumerator を返して、
外部イタレータとして扱える
196: 2022/09/26(月)02:33 ID:aC/L4xEl(1/2) AAS
FigmaがAdobeに行ったってニュース取り上げられてたけどFigmaってそこでUI作ったらHTMLかなんかに変換する機能とかあるのかな?
197: 2022/09/26(月)04:40 ID:tIU7Oyti(1/2) AAS
>>175
例えば、Ruby on Rails ではエラーメッセージなども国際化されていて、
日本語用のYAML ファイルに、単語などを登録する
accepted: を受諾してください
blank: を入力してください
他にも、モデル名を
member: 会員情報
その属性を
name: ユーザー名
もし、こういうように1つのファイルにまとめず、個別のファイルに書いていくと、
重複して、全てを修正しないといけなくなる
その時に修正漏れを起こさないように、かなりの時間を掛けて、
すべてのファイル・修正箇所を見ていく必要があるので、不可能
198: 2022/09/26(月)09:03 ID:aC/L4xEl(2/2) AAS
MySQLとかってFireBaseとかの代わりになりますかね?
199(1): 2022/09/26(月)10:54 ID:NmZ8KQlQ(1) AAS
>>181
Rubyの場合、{} は、{ key => value } みたいな、Hashと解釈されて
しまうから、何にも無い場所ではブロックとしては使えないんじゃなかったっけ。
200(1): 2022/09/26(月)13:56 ID:87YoNLu+(1) AAS
$ cp a a1
$ cp a a2
$ cp a a3
をまとめてやりたいときってブレース展開とかで上手く書けますかね?
for を使う方法ならわかりますが
201: 2022/09/26(月)14:50 ID:d5GlFcgh(1/2) AAS
展開にそういう機能はないからムリじゃないかな seqとxargs使えば出来るけどだったらforでもいいような
202: 2022/09/26(月)16:47 ID:EGAvXCTL(1/2) AAS
横なんですけど、例えばパラメータがファイル名に埋め込まれてる実験ファイルが大量にあるような状況で、各パラメータについての多重for文を回してデータを抽出、加工することがあるんですが、cut 辺りが非常に遅いです
こういうの早くするコツありますかね?
それこそ展開が使えると速いんですが、ファイル名が統一されてないときなんかは for 文式に走査せざるを得なくて困っています
203(1): 2022/09/26(月)17:13 ID:KGSSSIHZ(1) AAS
シェルスクリプトのループはスクリプト言語のループに比べても桁違いに遅いし
ループ内で外部コマンド呼び出してたら更に遅くなる
速度が必要なら外部コマンド側でループ相当の処理をさせる
204(1): 2022/09/26(月)17:51 ID:6tM7XGma(1) AAS
シェルスクリプトで遅いならスクリプト言語
それでも遅いなら事前コンパイルするGC言語
さらなる高速と省メモリを求めるなら非GC言語(C/C++/Rustなど)
205(1): 2022/09/26(月)17:57 ID:rB0VxLwq(1) AAS
書き直したところで速くならない場合もあるから
何が遅いのかと他の言語なら速くなるのかを把握してないと無駄な努力をすることになる
206(1): 2022/09/26(月)19:12 ID:d5GlFcgh(2/2) AAS
コマンドを起動することが本質のシェルスクリプトで速度云々言い出すのは色んなコトが世代間で伝わっていっていないんだろうなぁとこういうの見ると思う
上下前次1-新書関写板覧索設栞歴
あと 796 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.019s