エンジニアがソースコードでよく目にする「丸かっこ」「角かっこ」「波かっこ」には、それぞれどのような役割があるのか。実際のソースコードを例に挙げて、主要な役割を解説する。
「Java」「C++」「C#」などのプログラミング言語で書かれたソースコードには、さまざまな記号が登場する。中でも混同しやすいのが「かっこ」だ。「()」で表される「丸かっこ」、「[]」で表される「角かっこ」、「{}」で表される「波かっこ」は、ただ文字列をくくるだけの存在ではない。プログラミングにおいて、これら3種類のかっこが一般的にどう使われているのかを解説しよう。
Javaをはじめとするプログラミング言語では、一般的にメソッド(機能)を使用するときに丸かっこを使う。以下のJavaサンプルプログラムでは、「doSomething」メソッドを定義している。doSomethinsは2つの引数「round」「brackets」を受け取るメソッドであることを定義するために、丸かっこを用いている。
public void doSomething(String round, int brackets){ return 0; }
メソッドを呼び出すときにも、丸かっこを使う。以下はdoSomethingを呼び出すサンプルプログラムだ。int型の変数「x」には、doSomethingの実行結果である「0」が代入される。
int x = doSomething("data", 42);
プログラミング言語において、一般的に角かっこは配列を定義する際に使う。以下はJavaのサンプルプログラムだ。文字列(String)型の配列を宣言し、その中に「I」「need」「arrays」という3つの値を格納して初期化している。配列は、同じ型の変数をまとめたデータ群を指す。
String[] data = {"I", "need", "arrays"};
一部のプログラミング言語では、角かっこの中に範囲を記述することで、配列の一部を取り出すこともできる。以下はC#のサンプルプログラムだ。1行目では、1〜10の整数を初期値に持つint型の配列を、変数「array」に代入している。2行目では、arrayから配列の一部を取得する際に、角かっこを使って範囲を指定している。「[2..^4]」が範囲を指定する部分だ。「..」は範囲を指定するための「範囲演算子」で、左側に範囲の始点、右側に範囲の終点を置く。この場合は「2」が部分配列の開始インデックス(配列のインデックスは「0」から始まるため、「2」は3番目を指す)だ。「^」は配列の末尾から手前に何個数えた位置にあるのかを指定する。「^4」は「末尾から4番目の要素の手前」を指すので、「arrayの『3番目』から『末尾から数えて4番目の手前』」、つまりarrayの3〜6番目の要素を値に持つ部分配列(3〜6)を取得できる。取得した部分配列は、変数「slice1」に代入される。
var array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var slice1 = array[2..^4];
配列だけではなく、データや操作をまとめた「オブジェクト」のプロパティ(属性)や、コレクション(オブジェクトの集合体)の要素にアクセスする際にも角かっこを使う。以下のC#のサンプルプログラムは、文字列をキーに持つコレクション「Dictionary」型の変数「data_dictionary」を扱っている。変数「value」には、「key」という値をキーに持つdata_dictionary内の値を代入している。
value = data_dictionary['key']
Javaや「C」などのプログラミング言語では、クラス(オブジェクトの設計図)、メソッド、ループなどのまとまりの開始と終了を定義するために波かっこを使用する。波かっこに囲まれた範囲が、その中にある変数やメソッドが有効な範囲(スコープ)となる。
例えばクラスCの定義において、変数xを定義したとき、変数xのスコープはクラスC全体になる。xが外部から参照できるような指示を与えなければ、クラスCの外からは参照できない。これと同様に、メソッド内で定義された変数も、標準ではメソッドの中からしかアクセスできない。「for」「while」といったループ構造の開始と終了を示す波かっこの中で定義された変数は、そのループ内がスコープとなる。
ここまでに取り上げた3種類のかっこの名称を知らないからといって、誰かに指摘されることはほとんどない。実際、「パーレン」「大かっこ」「カーリーブラケット」などの別の呼び方も開発者の会話に登場する。とはいえ、さまざまなプログラミング言語の記号や成果物に関する専門用語を知っておくのは良いことだ。
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
企業の生成AI活用 なぜ日本は米国に追い抜かれたのか?
PwC Japanグループは日米両国で実施した「生成AIに関する実態調査」を基に、日本企業と米...
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2024年10月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...
堀江貴文氏のラジオ局と業務提携 売れるネット広告社がマス媒体に進出
売れるネット広告社は、実業家の堀江貴文氏が代表取締役会長を務める福岡県のラジオ局CRO...