Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

2014-08-01から1ヶ月間の記事一覧

Ruby | Numeric | -@

概要 Numeric#-@ 詳細 単項演算子のプラス。自身のインスタンスを返却する サンプルコード a = 1 puts -a puts -a == -1 出力 -1 true 参照 http://docs.ruby-lang.org/ja/2.0.0/method/Numeric/i/=2d=40.html

Ruby | Numeric | +@

概要 Numeric#+@ 詳細 単項演算子のプラス。自身のインスタンスを返却する サンプルコード a = 1 puts +a puts a == +a 出力 1 true 参照 http://docs.ruby-lang.org/ja/2.0.0/method/Numeric/i/=2b=40.html

Ruby | Mutex | unlock

概要 Mutex#unlock -> self 詳細 mutex オブジェクトのロックを解除する。 サンプルコード require "thread" class Counter attr_reader :count def initialize @count = 0 @m = Mutex.new end def increment(id) @m.lock begin puts "inner lock #{id}" @co…

Ruby | Mutex | try_lock

概要 Mutex#try_lock -> bool 詳細 mutex をロックしようとして、ロックが成功した場合、真を返します。 ロックできなかった場合にはブロックせず偽を返します。 サンプルコード require "thread" require "date" class MutexSample attr_reader :count def …

Go | If with a short statement

Go

概要 If with a short statement.Go 公式の Tour 22番目の項目について。 http://go-tour-jp.appspot.com/#22Go は、 if 文の宣言に任意のステートメントの実行を含めることが出来ます。 例えば、ブロック内のみで利用する変数の初期化など。 サンプルコード…

Ruby | Mutex | synchronize

概要 Mutex#synchronize { ... } -> object 詳細 mutex をロックし、ブロックを実行する。 実行後に必ず mutex のロックを解放する。 サンプルコード require "thread" require "date" class MutexSample attr_reader :count def initialize @m = Mutex.new …

Ruby | Mutex | sleep

概要 Mutex#sleep(timeout = nil) -> self 詳細 与えられた秒数の間スリープしてからロックを解放する。 サンプルコード require "thread" require "date" class MutexSample attr_reader :count def initialize @m = Mutex.new end def sleep_test(id) puts…

Go

Go

概要 Go 詳細 Go は Google 製のプログラム言語。 利用想定としては、従来の C/C++ などがカバーしていた領域を よりシンプルな記述で書くこと。 一覧 項目 URL インストール http://d.hatena.ne.jp/tbpg/20140826/1409057404 package alias http://d.hatena…

Go | Named Results

Go

概要 Go は関数の戻り値に複数の値を戻すことが出来ますが、 この際に戻り値に名前を与えることで、変数のように扱うことができます。 この文法を Named Results と呼びます。 サンプルコード package main import "fmt" func main() { ret1, ret2 := useNam…

Go | switch

Go

概要 switch について サンプルコード package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) randoms := []int{rand.Intn(10), rand.Intn(10), rand.Intn(10)} // 値による分岐(列挙可能) for _, n := range…

Go | for文

Go

概要 for文について。Go ではループ構造を表す文法は for のみ。 until も while もない。 サンプルコード package main import "fmt" func main() { // 標準的な for loop for i:=0;i<5;i++ { fmt.Println(i) } // while 風の利用法 cnt := 0 for cnt < 5 {…

Go | 定数

Go

概要 定数について サンプルコード package main import "fmt" func main() { // const 定数名 const INT_CONST int = 10 const Int_const int = 11 const int_const int = 12 const STRING_CONST string = "hoge" // ブレースで一括設定可能 const ( INT1 i…

Go | String / Rune / ヒアドキュメント

Go

概要 String / Rune / ヒアドキュメントについて サンプルコード package main import "fmt" func main() { // String はダブルクォートを使用する fmt.Println("string") // Rune でコードポイントを利用する [...] は暗黙長の配列宣言 // := で変数の宣言…

Go | Package の import 時にエイリアスを使用する

Go

概要 Package の import 時にエイリアスを使用します サンプルコード fmt に別名 f を付けてみます。 package main import ( f "fmt" ) func main() { f.Println("give me format") } 出力 $ go run package_alias.go give me format

Go | Windows7環境に peco をインストールする

Go

概要 Windows7環境に peco をインストールする 前提 $GOPATHを環境変数に追加しておくこと ※仮に $GOROOT/_go とします。環境変数 $PATH に $GOPATH/bin を追加する 手順 ・ Windowsの 64 bit 用バイナリを取得します https://github.com/peco/peco/releases…

Go | Windows7 環境への install

Go

概要 Windows7 環境へ Go を install します。 手順 インストーラーをダウンロードします。 http://golang.org/dl/今回は version 1.3.1 の 64bit 版を選択します https://storage.googleapis.com/golang/go1.3.1.windows-amd64.msi ウィザードに沿ってイン…

Ruby | Mutex | locked?

概要 Mutex#locked? -> bool 詳細 mutex がロックされている時、真を返却。 サンプルコード require "thread" class Counter attr_reader :count def initialize @count = 0 @m = Mutex.new end def increment(id) puts "id = #{id}, locked? = #{@m.locked?…

Ruby | Mutex | lock

概要 Mutex#lock -> self 詳細 mutex オブジェクトをロックする。 1つのスレッドだけがロック可能。 サンプルコード require "thread" class Counter attr_reader :count def initialize @count = 0 @m = Mutex.new end def increment(id) @m.lock begin pu…

Ruby | Module | undef_method

概要 Module#undef_method(*name) -> self 詳細 このモジュールのインスタンスメソッド name を未定義にする。 サンプルコード class Hoge def hoge 'hoge' end print instance_methods(false), "\n" undef_method :hoge print instance_methods(false), "\n…

Ruby | Module | remove_method

概要 Module#remove_method(*name) -> self 詳細 インスタンスメソッド name をモジュールから削除する。 配列指定での一括削除も可能。 サンプルコード class Hoge def hoge 'hoge' end print instance_methods(false), "\n" remove_method :hoge print ins…

Ruby | Module | remove_const

概要 Module#remove_const(name) -> object 詳細 name で指定した定数を取り除き、その定数に設定されていた値を返却。 サンプルコード require 'english' class Hoge HOGE_CONST = 'hoge' print constants, "\n" remove_const :HOGE_CONST print constants,…

Ruby | Module | public

概要 Module#public(name) -> () 詳細 メソッドを public に設定します。 引数が与えられた時には引数によって指定されたメソッドを public に 設定する。 引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドを public にする…

Ruby | Ruby quine 入門

概要 Ruby quine に入門してみます。 Quineとは 自身のソースコードと完全に同じ文字列を出力するプログラム。 コード1 $><

Ruby | Module | protected

概要 Module#protected(name) -> () 詳細 メソッドを protected に設定します。 引数が与えられた時には引数によって指定されたメソッドを protected に 設定する。 引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドを prot…

受け手に理解してもらうための「会話・文章」。メタファの活用

概要 受け手に理解してもらうための「会話・文章」。メタファの活用について 経緯 技術ブログを書いたり、技術記事を寄稿をしたり、後輩や子供に物事を説明する機会が増えたり、 自分の中で伝える技術の重要度が今まで以上に上がってきました。技術書の名著…

Ruby | Module | private

概要 Module#private(name) -> () 詳細 メソッドを private に設定します。 引数が与えられた時には引数によって指定されたメソッドを private に 設定する。 引数なしのときは今後このクラスまたはモジュール定義内で新規に定義されるメソッドを private に…

Ruby | Module | method_undefined

概要 Module#method_undefined(name) -> () 詳細 このモジュールのインスタンスメソッド name が Module#undef_method によって削除されるか、 undef 文により未定義にされると、インタプリタがこのメソッドを呼び出される。要はメソッドの undef 動作に対す…

Ruby | Module | method_removed

概要 Module#method_removed(name) -> () 詳細 メソッドが Module#remove_method により削除された時にインタプリタがこのメソッドを呼び出す。 サンプルコード class Hoge def self.method_removed(name) puts "method_removed => #{name}" end %w{hoge hig…

Ruby | Module | method_added

概要 Module#method_added(name) -> () 詳細 メソッド name が追加された時にインタプリタがこのメソッドを呼び出します。このメソッドをオーバーライドすることで、メソッド追加時に任意の処理を実行できる。 サンプルコード class Hoge def self.method_ad…

Ruby | Module | included

概要 Module#included(class_or_module) -> () 詳細 self が Module#include されたときに対象のクラスまたはモジュールを引数にしてインタプリタがこのメソッドを呼び出す。このメソッドをオーバーライドすることで、モジュールの include 時に任意の処理を…