公式サイト掲載の出題範囲を元に、出題予想問題の間違いやすいところのまとめ。
【実行環境】
* 実行方法
* コマンドラインオプション
→ ARGV[0]とか、コマンドライン引数の拾い方。
* 環境変数
* irb
【文法】
* コメント
* リテラル
→ ヒアドキュメント。
「-」の 有無で、終了キーワードのインデント可否を問う。
→ ””と’’の違い。
「”#hoge”」は式展開され、直前の変数hogeの値が文字列出力される。
あと、「"hoge" 'hoge'」のように空白挟んでも一文字列となる。
あと、「"hoge" 'hoge'」のように空白挟んでも一文字列となる。
0で始まるのは8進数。
'hoge'を%q!hoge!と指定できる。!を'として扱うという意味。
?\nだと\nの文字コードが出力される。
指数表現について、3e-2 は 3.0*10-2乗を表す。
→ 正規表現
最低これだけ以下だけ覚えておく。
最低これだけ以下だけ覚えておく。
[]は中に列挙した、いずれかの文字にマッチする。
[^]がついた場合、括弧内に列挙されていない文字にマッチする。
\Aは文字列の先頭を指定する。
\Zは文字列の末尾を指定する。
[^]がついた場合、括弧内に列挙されていない文字にマッチする。
\Aは文字列の先頭を指定する。
\Zは文字列の末尾を指定する。
\Sは空白以外。
* 変数/定数とスコープ
→ (ローカル変数)頭文字が英字小文字か_、二文字目以降が英数字。
→ 問題「偽になるものを選べ」・・・nil、false
→ 問題「コード例外が発生しないものを選べ」
スコープに注意。以下パターン参考。
a) 変数が参照できずNameError例外が発生する
b) 代入は実行されないが、宣言のみ有効となり、変数の中身はnil
c) ブロック外の宣言、ブロック内で代入は可能
c) ブロック外の宣言、ブロック内で代入は可能
d) 宣言されていない変数の自己代入は不可
e) ブロック内で宣言した変数はそのブロック内のみ有効
e) ブロック内で宣言した変数はそのブロック内のみ有効
* 演算子
→ 再定義できないのは、=、?:、..、…、&&、and、||、orなど。
私見だけど、基礎的な構文(C言語とかにもあるような)は再定義不可か。
私見だけど、基礎的な構文(C言語とかにもあるような)は再定義不可か。
Arrayだと+、[]、<=>とかは再定義できる。
* 条件分岐
* ループ
* 例外処理
→ begin/rescue/ensure
* メソッド呼び出し
* ブロック
* メソッド定義
* クラス定義
* モジュール定義
【組み込みライブラリ】
* 組み込み関数
* 組み込みクラス
→ eqlとequalの差。
eqlが値比較でequalはアドレス比較。
eqlが値比較でequalはアドレス比較。
→ hashとarrayのメソッド。
似てるの多いけどindex使う関数なんかはhashにはないので注意。
似てるの多いけどindex使う関数なんかはhashにはないので注意。
→ Arrayクラス頻出メソッド。
map/collect
&
concat
compact
find/detect
inject
delete
reject
-
|
+
slice
join
&
concat
compact
find/detect
inject
delete
reject
-
|
+
slice
join
sort (<=>(大小比較)の定義が必要)
→ Hashクラス頻出メソッド
length
invert
delete_if
clear
invert
invert
delete_if
clear
invert
→ Stringクラス頻出メソッド
index
delete(範囲指定)
split
chomp
chop
delete(範囲指定)
split
chomp
chop
-はないので注意
→ Fileクラス頻出メソッド
dirname
open(引数)
seek
join
open(引数)
seek
join
→ Dirクラス頻出メソッド
glob
→ IOクラス頻出メソッド
seek
→ Timeクラス頻出メソッド
strftime(書式指定文字列)
%Y年(4桁)と%y(年2桁)
%m月
%M分
%Y年(4桁)と%y(年2桁)
%m月
%M分
【オブジェクト指向】
* ポリモルフィズム
* 継承
→ class huge < object ; end
* mix-in
→ includeメソッドで複数のモジュールをクラスに取り込むことができる
→ extendメソッドで特定のオブジェクトにモジュールを取り込むことができる
こんなもんかな?
とりあえず以上。
こんなもんかな?
とりあえず以上。
0 件のコメント:
コメントを投稿