yhara.jp

Recent Posts

RubyistのためのRustメモ

Tech

「RubyのこれってRustでどうやるの?」をメモしていこうと思います。

主にAtCoderで使うことを想定しています。

参考

unwrapって何

他の人の回答を見ているとunwrapががんがん出てきますが、これはOptionのメソッドです。

普通のプログラムではパターンマッチとかでNoneかどうかをチェックすべきですが、競プロの場合は例えば入力データが不正であるケースは考えなくてよいのでがんがんunwrapすることになります。

absがない?

u32にはabsメソッドがありません。unsignedだから要らんやろということですね。

i32にはabsメソッドがあります。

each

for_eachというメソッドがあるけど、AtCoderのrustは1.15.1なので使えなかった。for x in xs {} で代用できる。

1からnまでのループはfor x in 1..n+1。Rubyの..と違って終端が含まれないので注意。0からn-1までがfor x in 0..nになる

each_with_index

Iteratorenumerateメソッドを使うと、indexとのタプルの列に変換してくれる

1.15.1について

AtCoderのrustは1.15.1なので(2018年8月現在)、ネットで調べた書き方ができないこともある。

max

use std::cmp; して、cmp::max(x, y)

新しいrustだとx.cmp(y)と書ける。

More posts

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author