3/23(水)にNTT-ATさんの会議室にてkawasaki.rb #034を開催しました。

togetterのまとめはこちら

パーフェクトRuby読書会

「5-2-2 部分文字列の取得」まで終えました。

本日は自己紹介に45分費やしてからのスタートです。

5-2 String

5-2-1 基本的な振る舞い

RubyのStringには長さや内容を問い合わせるためのメソッドが用意されています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'hogehoge'.empty? # => false
''.empty? # => true
'hogehoge'.length # => 8
'ほげほげ'.length # => 4
'ほげほげ'.bytesize # => 12
'ほげほげ'.each_char {|c| p c} # =>
# "ほ"
# "げ"
# "ほ"
# "げ"
"ほげほげ\nふがふが".each_line {|l| p l} # =>
# "ほげほげ\n"
# "ふがふが"
'Alice Bob Charlie'.include?('Bob') # => true
'foobar'.index('ob') # => 2
'こんにちは'.index('にち') # => 2
'興味あります'.start_with?('興味') # => true

演算子を用いることで新たな文字列を得ることも出来ます。

1
2
3
'クラッシュ' + 'クラウン' # => "クラッシュクラウン"
'とら' * 3 # => "とらとらとら"
'Result: %04d' % 42 # => "Result: 0042"

« を用いると、破壊的な左辺の文字列に右辺の文字列を破壊的に追加できます。

1
2
3
str = 'Pine'
str << 'apple'
str # => "Pineapple"

5-2-2 部分文字列の取得

部分文字列を取得するにはString#sliceを用います。

1
2
3
4
5
6
str = "今日は盛り上がりすぎて進みませんでした"
str.slice(4) # => "り"
str.slice(5, 4) # => "上がりす"
str.slice(5...8) # => "上がり"
str.slice(/[ぁ-ん]{2,}/) # => "がりすぎて"
str.slice(-2, 2) # => "した"

String#[]はsliceのショートハンドです。

1
2
3
4
str[4] # => "り"
str[5, 4] # => "上がりす"
str[5...8] # => "上がり"
str[/[ぁ-ん]{2,}/] # => "がりすぎて"

slice!はレシーバを更新する破壊的メソッドです。

1
2
3
str.slice!(-2, 2) # => "した"
str # => "今日は盛り上がりすぎて進みませんで"
str << "したか?" # => "今日は盛り上がりすぎて進みませんでしたか?"

今回のiruby notebookは以下のとおりです。

別タブで開く

セッション

Sparc Solaris向けにGoのクロスコンパイル環境を作った話 from @snowcrushさん

発表資料はこちら

“歴史的経緯”によりSparc/Solarisが稼働している社内において、使用可能な言語がJava/Perlしかない状況を打開すべくGoをクロスコンパイルした話をされました。 Goの様々な環境にクロスコンパイルできるところや、アウトプットが1バイナリになりデプロイが容易なのは、充分Goの強みと言えますね。

TwitterではScalaをどのように活用しているのか? from @okapiesさん

Developers Summit 2016で発表された「リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜」の資料から一部抜粋し、TwitterでのScalaの活用について離されました。 Twitter社が開発したRPCフレームワークであるFinagle、分散トレーシングシステムのZipkinScala:The Industrial Partsの紹介がありました。

ScalaMatsuriのCode of Conductについて from @okapiesさん

2016年1月末に行われた(ScalaMatsuri)[http://scalamatsuri.org/]を実施するにあたり、行動規範を制定した話をされました。 ScalaMatsuriで上映された高クオリティな動画を必見です!

ScalaMatsuriの行動規範ページはこちら

次回予告

次回は2016/4/27(水)(毎月第4水曜日)開催予定です。ご参加お待ちしております。

寄稿者について

松久保 敬人 (@Peranikov)

node.jsやiOSアプリ開発を経て今はRailsとDDDとScalaの人。 一眼レフカメラ買いました。

Published: March 26 2016

blog comments powered by Disqus