Quantcast
Channel: hachi8833の記事一覧|TechRacho by BPS株式会社
Viewing all articles
Browse latest Browse all 1759

Ruby 3.1: ES6風のハッシュリテラル省略記法が追加(翻訳)

$
0
0

概要

原著者の許諾を得て翻訳・公開いたします。

日本語タイトルは内容に即したものにしました。

Ruby 3.1: ES6風のハッシュリテラル省略記法が追加(翻訳)

Ruby 3.1に、ECMAScript 6オブジェクトのショートハンド構文に似たハッシュリテラルのショートハンド構文が追加されました。(c60dbcd)。

まず、ECMAScript 6のハッシュリテラル値省略がどのようなものかを見てみましょう。

const a = 1;
const b = 2;
const c = {a, b};
console.log(c);

//=> {"a":1,"b":2}

このショートハンド構文の主なメリットは、プロパティとして渡される変数名と同じキー名を持つハッシュを定義したい場合に、キー名を渡すだけでショートハンド構文を利用できることです。

変更前

a = 1
b = 2
c = {a: a, b: b}
#=> {:a=>1, :b=>2}

c = {"a": a, "b": b}
#=> {:a=>1, :b=>2}

上の例では、キー名と値が同じであっても、いちいち値を書かなければなりません。

変更後

a = 1
b = 2
c = {a:, b:}
#=> {:a=>1, :b=>2}

c = {"a":, "b":}
#=> Raises SyntaxError

上の例では、ハッシュに値を書かずにキー名だけを書いています。これで、キー名と同じ名前を持つ値を識別できます。

ただしご覧のとおり、キーを文字列で渡すとエラーになります。

関連記事

Ruby 3.1にArray#intersect?メソッドが追加(翻訳)

The post Ruby 3.1: ES6風のハッシュリテラル省略記法が追加(翻訳) first appeared on TechRacho.


Viewing all articles
Browse latest Browse all 1759

Trending Articles