エンジニアがソースコードでよく目にする「丸かっこ」「角かっこ」「波かっこ」には、それぞれどのような役割があるのか。実際のソースコードを例に挙げて、主要な役割を解説する。
「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エンジニアの問題解決に役立つ情報を厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
企業のデジタル化、クラウド化の動きが加速する中で、ネットワークやアジャイルの必要性が改めて関心を集めている。本稿では、クラウドネイティブアプリケーションの採用に当たってIT意思決定者が考慮すべき事項を解説する。
クラウドネイティブアーキテクチャは、ビジネスにとっての未来と目されている。本稿ではDevOpsとマイクロサービスベース技術の影響、ソフトウェア開発のためのコンテナにおけるセキュリティの重要性、クラウドネイティブアプリケーション開発のためのMicrosoft Azureについて取り上げる。
アプリケーションを稼働させる手段として普及した「コンテナ」。仮想マシンとは何が違い、どのように使い分ければよいのか。コンテナを安全に運用するために注意すべきこととは。コンテナ活用のヒントを紹介する。
クラウドネイティブなアプリケーションを構築することで、クラウドサービスのメリットを最大限に生かすことができる。クラウドネイティブ開発の基本と、開発に役立つツールがどのように進化しているのか、説明する。
Kubernetesクラスタ管理の基本原則は何か。クラスタ管理ツール「Rancher」「OpenShift」「Tanzu」が採用しているセキュリティ対策とは。運用管理の基礎知識をおさらいする。
繝弱�繧ウ繝シ繝峨�縲∬イ�縺ョ驕コ逕」縺ァ縺ゅk繧「繝翫Ο繧ー讌ュ蜍吶r縺ェ縺上○繧九�縺� (2024/11/12)
驥題檮讖滄未縺ョ繝「繝繝翫う繧シ繝シ繧キ繝ァ繝ウ縲譛驕ゥ隗」縺ォ蟆弱¥縺ォ縺ッ (2024/3/29)
いまさら聞けない「仮想デスクトップ」と「VDI」の違いとは
遠隔のクライアント端末から、サーバにあるデスクトップ環境を利用できる仕組みである仮想デスクトップ(仮想PC画面)は便利だが、仕組みが複雑だ。仮想デスクトップの仕組みを基礎から確認しよう。
「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。
「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。
「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...