Rustのsplit_atで日本語を使う時の注意点

O'ReillyのProgramming Rust Chapter 3: Basic TypesのTuplesに出てくるsplit_atという関数について、ちょっとつまづいたところがあったのでメモ。 本題 Rustにはsplit_atという関数があり、 let value = 2; let text = "abcde"; let (head, tail) = &text.s…

Rustの{integer}および{float}

O'ReillyのProgramming Rustを読んでいて、不思議に思った部分があったのでメモ。 前提となる知識 Rustでは最低限の型の情報さえ与えれば、残りの部分は推論される。たとえば、 fn sample1() -> i32 { let x:i32 = 100; x } という関数において、戻り値の型…

Rustの関数の引数でmutを使ったときの挙動

Rustの変数はデフォルトでイミュータブルである。たとえば、 let x = 10; x = 20; はエラーとなる。値を更新したい場合は、 let mut x = 10; x = 20; とする必要がある (mutはmutableの略) 。 本題 fn sample(mut n: i32) -> i32 { n += 1; n } fn main() { …

Pythonの変数名

Pythonでちょっとつまづいたのでメモ。 Javaとかだと class sample{ static int f(int x){ return x*2; } public static void main(String[] args) { int f = 3; System.out.println(f(5)); } } で10と出力される。メソッド名と変数名がかぶっても良い。 し…

Ruby 1.9.3のインストールについて

諸事情からRubyの1.9.3をrbenvを使いインストールしようとしたが、私の環境のArch Linux (Antergos) では少々つまづくポイントがあったのでメモ。 エラーメッセージは以下のようになっていて、 BUILD FAILED (Antergos Linux using ruby-build 20180822) Ins…

HAL9000っぽいスマートスピーカーを作る

はじめまして。突然ですが、SF映画の名作「2001年宇宙の旅」に登場するAIである「HAL9000」を精密に再現したスマートスピーカーが2018年8月現在クラウドファンディングで出資を募っています。しかし、出資を募っている段階ではいつ出荷されるのかはわかりま…