開発者が知っておくべき「かっこ」の違い【後編】
プログラミングにおける3種類のかっこ、()[]{}の混同しがちな使い方
エンジニアがソースコードでよく目にする「丸かっこ」「角かっこ」「波かっこ」には、それぞれどのような役割があるのか。実際のソースコードを例に挙げて、主要な役割を解説する。
「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発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 エンジニア虎の巻
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
この記事の著者
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
2
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
「データストレージの活用方法」に関するアンケート
-
8
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
9
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
10
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー