親の環境に影響を与えないためにサブシェルで実行している部分があります。 read に複数の引数を与える read に複数の引数を与えると複数の変数に同時に値を代入可能。区切りは IFS によって変化する。 $ echo 1 2 3 | (read v1 v2 v3; declare -p ${!v*}) # `${!v*}' は前方一致展開です declare -- v1="1" declare -- v2="2" declare -- v3="3"
はじめに Binding クラス「class Binding (Ruby 2.1.0 リファレンスマニュアル)」には以下のような要約が記述されています。 ローカル変数のテーブルと self、モジュールのネストなどの情報を保 持するオブジェクトのクラスです。 分かったこと・調べたことをメモしました。 クロージャ クロージャを例に Binding を考えていきます。 以下は Ruby におけるクロージャの例です。 ここで、クロージャが以下の3つから成ると考えます。 包んでいるもの(クロージャ)。上の例ではブロック「{|n| n * a}」 包まれているもの(変数)。上の例では変数「a」 包まれているものがあるところ(環境)。上の例では「変数aが定義されているスコープ(明示されてないがここでは main)」 (イメージ図) ブロック、変数、スコープとも字義的な面での説明です。 オブジェクト指向の
ruby でメソッドの呼び出し状況をログ出力するのにこんな方法は如何? Util::Trace という module を定義し、 メソッド定義の先頭に Util::Trace.trace() を追加するだけ。 # -*- coding: utf-8 -*- require 'logger' module Util class Trace @@enable = true @@log = nil def self.log=(log) @@log = log end def self.enable=(bool) @@enable = bool end def self.trace(*arg) @@log.debug "#{caller.first} (#{arg.join(',')})" if @@enable && @@log end end end def sub Util::Trace.t
みたいな感じ. このときadd_traceをうまいこと定義したら,testメソッド内にログ用のコードを埋め込めるはず. 結果 まぁできたけど,けっこう複雑…(検証環境:ruby-2.1.0dev) Qiitaってサイト内記事を引用する方法あるのかな? 毎度毎度,Qiitaの綴りがわからなくなる. コード # このモジュール内はほぼ参考記事通り module Util class Trace @@enable = true @@log = nil class << self def enable= bool @@enable = bool end def log= log @@log = log end def trace *args @@log.debug "#{caller.first} (#{args.join(',')})" if @@enable && @@log end # ad
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
2015年3月に行われたPyData.Tokyoでのチュートリアル&ハッカソンの説明スライドです。 A deck used in the introductory session of PyData.Tokyo tutorial and hackathonRead less
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く