FAQ・アドバイス集
操作・コマンド編
- Emacsの画面が2画面になって見にくい
- C-x 1を押す
- ファイル名を間違えてプログラムを作成した
- emacsでC-x C-wを押すとファイル名を書き換えられる
- プログラムを実行する、作成するときの文字打ち
- 最初の文字をある程度打ち込み、Tabキーを押す
- カーソルを合わせるとき
- マウスやパッドではなく、キーボード右下の矢印キーを使う
- プログラムの最初の2行目を書くのがめんどくさい
- 1行目は書かなくてはならない
2行目は書かなくて良い(勝手に打ってくれるから)
- プログラムの2行目の「#-*- coding:utf-8 -*-」にemacsutf8が保存のときに打たれる
- C−x C-m f utf-8 [Enter]
- プログラムが見にくい
- C-SPCで範囲指定をしてからC-iを押すと範囲内のインデント(段落)をそろえることができる無駄な空白の行を入れない
- スライドにある\(円マーク)を打ちたい
- \と¥は一緒
- プログラムが終わらない(∞ループになった)
- C-cを何回か押す
入出力処理編
- 文字が変数に入らない
- ダブルコーテーション(””)をつける
- %が最後にでてくる
- print("~~\n")またはputs("~~")と書く
- %dや%sがそのまま出てくる
- printfで出力する
- プログラムに空白を出力したい、段落を付けたい
- print("\n")またはputs("")を段落を付けたい場所に書く
- ファイルをディレクトリに入れるときはどうすれば良いのか
- mvファイル名 移動先 ディレクトリ名(例: mv sample.rb test)
- コピペの仕方がわからない
- 領域選択をして、貼り付け先に言ってマウス真ん中ボタンで貼り付ける
演算編
- nil
- nilは値が何もないときに出てきます。配列などで指定したところに値があるかを確認しましょう
制御構造編
- breakやredoが反応しない
- whileの中にないと反応しません
while
~~
redo
end
のようになっているか確認する
- elseのときにしか次に進まない
-
if
~~
else
~~
次にしたいこと
end
になっているかも
配列編
- 配列に値を入れたい
- <<またはpushを使う
配列名<<値
配列名.push(値)
- 配列の値を取り出したい
- shiftまたはforを使う
先頭の値を取り出すとき
配列名.shiftを使う
一定数、全部取り出すとき
for 変数 in 配列名
- 配列から値を取り除きたい
- 配列名.delete_at(x)(xは取り除きたい値の添字)で取り除くことができる
メソッド定義(def)編
- defの中の値をdefの外で使いたい
- 基本的にdefの中と外では違う世界になっている
一応returnする値をgetsで取得できるが無駄にプログラムを書くことになるのでお勧めはしない
- どんな時に使うのか?
- くり返し使いたい時に使う
- メソッドの中でメソッドは使えますか?
- 定義したメソッドの中で定義した別のメソッドを呼ぶことならば使用可能
エラーメッセージ編
- error.rb:6: warning: found
- error.rbの6行目にエラーがある
- `= literal' in conditional, should be ==
- if a = 0 と書いてあるが == にするべき
- syntax error, unexpected end-of-input
- endが足りないか多いかのどっちか
- `printf': too few arguments (ArgumentError)
- printfの中に%sや%dはあるが代入する変数がない
- invalid value for Integer()
- printfの中に%dがあり、整数ではないものを出力しようとしている
VirtualBox編
- VirtualBoxの画面が小さい
- 画面を大きくした後に「画面(ウィンドウ)サイズ変更」ボタンを押すと調節してくれる。