プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 このページをアンテナに追加 RSSフィード

 iTunes Music Store(Japan) なかのひと あわせて読みたいブログパーツ
|

0001 | 00 |
2004 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2008 | 01 | 02 | 03 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 |
2010 | 03 | 04 | 06 | 07 | 09 | 10 | 11 |
2011 | 01 | 02 | 10 |
2012 | 04 |
2013 | 01 | 05 | 06 | 07 | 08 | 10 |
2014 | 02 | 03 | 05 | 09 |
2015 | 04 |
2016 | 09 | 11 | 12 |
はてな一覧
アンテナに追加
私のアンテナ
私のダイアリー
私のアーカイブ
私のアイデア
私のブックマーク
私のグループ
私のキーワード
ニュース系、今まで続いているシリーズモノの読み物
dKingyo Utility Toolkit Projectのリリース情報
やっぱり暗号化は大人の味(笑)
プログラムのパッキング方法を調べよ
ココが厳しいよMinGW
ライブラリアン通信
ゲームプログラミングどうしよう
CRCについて
ビット演算練習
d金魚の今更Ajax
Windows Tips
VC6 Tips
Win32 WTL Tips
Ruby for C++ User
Ruby Tips
今日のRubyで嵌った事
正規表現PIECE
書きかけ
続く・・・

私のダイアリーの人気記事
新しくブックマークされた記事


あまり、役に立たなそうな個人的に調べた情報や妄想に耽った事、今 勉強している事ヒソヒソと公開していたりします。 | 登録してくれている方々 | d金魚にメール | 当サイトは640x480の画面解像度に対応しています。
日記へのリンク、アンリンクはフリーですが、selfタグのついている部分のコンテンツの引用はご遠慮願います。ご協力よろしくお願いします。


2007-04-05 シーゲンガーのためのルビー PART.6

[][]Ruby for C++ User / ループ内の制御文に関して Ruby for C++ User / ループ内の制御文に関して - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Ruby for C++ User / ループ内の制御文に関して - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

Powered by dKingyo AJAX | Python | ソフトウェア開発技術者 | WEB DB PRESS | 画像処理


break

ループの実行を中断

Ruby C/C++共通


next

ループの次の実行を開始

C/C++のcontinueに相当


redo

ブロックの先頭行からやり直し

C/C++では以下のgotoのソースコードと同等

int i;
for(i=0;i<length;i++){
BEGIN_BLOCK:
 if(/*何らかの条件*/){
  goto BEGIN_BLOCK;
 }
}

これによりカウンターがインクリメントされない

2007-03-26 シーゲンガーのためのルビー PART.5

[][]Ruby for C++ User / gsub!中にパターンマッチした文字が上手く置換されない Ruby for C++ User / gsub!中にパターンマッチした文字が上手く置換されない - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Ruby for C++ User / gsub!中にパターンマッチした文字が上手く置換されない - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

Powered by dKingyo Java | C言語 | C++ | C言語 | 逆引きハンドブック

今日のRubyで嵌った事。

Rubyの String#gsub! はsに行った処理によってオブジェクト内の文字列の置換してくれるのだと思っていた。

だが、違っていたのだ。

str = "abc def"
i = 0
str.gsub!("abc"){|s|
 s = %Q(Ruby[#{i}])
 p s
 i = i+1 
}

処理結果

"Ruby[0]"
"1 def"

sに処理結果を入れたので"1 def" ではなくて"Ruby[0] def"になってほしいのだ。


この原因は ...

str = "abc def"
i = 0
str.gsub!("abc"){|s|
 s =%Q(Ruby[#{i}])
 p s
 i = i+1 # ここにある。
}

最後に処理した結果がsに反映されてしまうのだ。

おそらくRuby関数仕様と同じ働きなのだろう・・・。

よって・・・

str = "abc def"
i = 0
str.gsub!("abc"){|s|
 ts = %Q(Ruby[#{i}])
 p ts
 i = i+1 
 ts
}
p str

にて期待する処理結果が返ってくる。

"Ruby[0]"
"Ruby[0] def"

嗚呼、これに気付けず無駄な時間を過ごす・・・。

この問題に3時間も費やしてしまった。

2007-03-16 シーゲンガーのためのルビー PART.4

[]Ruby for C++ user / C++Rubyのコメントアウトの比較 Ruby for C++ user / C++とRubyのコメントアウトの比較 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Ruby for C++ user / C++とRubyのコメントアウトの比較 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

Powered by dKingyo Python | はじめての | Ruby | TurboGears | ツクール

  • C++ 1行コメントアウト
    //ここはコメントです。
    
  • C 複数行コメントアウト
    /*
     ここはコメントです。
    */
    
  • Ruby 1行コメントアウト
    # ここはコメントです。
    
    複数行コメントアウト
    =begin
     ここはコメントです。
    =end
    


個人的にはC++のSTLのイテレータ取得の時に使うbegin(),end()とかぶるので

begin,endが予約語として使われているプログラミング言語全般は好きではない。

だが、Rubyの様々な構文のことを考えるとこのイメージを打ち消すだけの魅力ある言語だと思う。

2007-03-15 シーゲンガーのためのルビー PART.3

[]Ruby for C++ user / C言語のincludeをRubyではどう書くか? Ruby for C++ user / C言語のincludeをRubyではどう書くか? - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Ruby for C++ user / C言語のincludeをRubyではどう書くか? - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

Powered by dKingyo C言語 | TurboGears | アセンブラ | GNU | Game Programming Gems

C

#include "tagmapfile.h"

Ruby

require "tagmapfile.rb"

2007-03-14 シーゲンガーのためのルビー PART.2

[]Ruby for C++ user / C言語のforをRubyで書き下す方法 PART.1 Ruby for C++ user / C言語のforをRubyで書き下す方法 PART.1 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Ruby for C++ user / C言語のforをRubyで書き下す方法 PART.1 - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

Powered by dKingyo 逆引きハンドブック | ポケットリファレンス | Game Programming Gems | TOEFL 突破 | TurboGears

http://0xcc.net/blog/archives/000137.html

http://www3.atwiki.jp/nanakoso/pages/23.html

に触発されて、

C言語で書く場合forはよく文字列参照として用いるが、それをRubyで行う場合どうするかを比較してみた。

C言語の場合

#include <stdio.h>
#include <string.h>
int main(){
 const char *str = "moziretsu"
 size_t length = strlen(str),i;
 for(i=0;i<length;i++){
  printf("%c\n",str[i]);
 }
 return 0;
}

C++の場合

#include <iostream>
#include <string>
using namespace std;
int main(){
 string str = "moziretsu";
 for(size_t i=0;i<str.size();i++){
  cout << str[i] << endl;
 }
 return 0;
}

Rubyの場合

str = String.new("moziretsu")
for i in 0..str.length - 1 do
 puts sprintf("%c",str[i])
 #puts str[i]でもOK
end

str.length - 1  に注目


Rubyに慣れるとC/C++を書くときに

;

を忘れて困る。

2007-03-13 シーゲンガーのためのルビー PART.1

[]Ruby for C++ user / RubyにはString#clearが無い!!! Ruby for C++ user / RubyにはString#clearが無い!!! - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 を含むブックマーク Ruby for C++ user / RubyにはString#clearが無い!!! - プログラミングの作業に何の価値も見出せなくなってしまったd金魚による日記 のブックマークコメント

http://d.hatena.ne.jp/studiokingyo/20070322#p2

にてC++で記述しているTagMapFileのparserをRubyに移植している時に

String#clear

を呼び出しているのだが、エラーが出力される。これはどういうことだと思ったら

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/24107

と言う事だった・・・。

RubyにはC++のSTLと同じ機能があると思っていたのに・・・1.9に実装予定と・・・

私のRubyは1.8.6だよ・・・まだ1.9はリリースされていないようですね・・・。

と言う事は今のところはclearより新たにString.newですかね。

Program | Debug | dKingyo Utility Toolkit | library | D言語 | 御本とか | 備忘録 | テクニック | WayBack | 格言 | 英語 | 他力本願 | news | software |

デースケドガー