0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#とJavaScriptを例にしたvoidの扱い

0
Posted at

概要

プログラミングにおいて、voidとは値を返さないキーワードとして使われます。ただ、このvoidの扱いが言語によって異なるので今回はそのメモ書きです。

C#の場合

以下のようなコードを用意します。

var isHello = true;

var temp = isHello ? Console.WriteLine("Hello World!") : Console.WriteLine("Not Hello World!");
Console.WriteLine(temp);

これはビルドエラー「S0815: void を暗黙的に型指定された変数に割り当てることはできません」となります。Console.WriteLineはvoidの関数ですが、voidは型として扱うことができません。

JavaScriptの場合

以下のようなコードを用意します。

const isHello = true;

const temp = isHello ? console.log("Hello World!") : console.log("Not Hello World!");
console.log(temp);

これは実行され最後に「undefined」が出力されます。console.logはvoidの関数です。

違いなど

C#ではvoid (C# リファレンス)に書いてある通り、voidは型として使えないことが記載されています。静的型付け言語では基本、voidキーワードは特別な扱いとなります。なお、Kotlinのように、値を返さない関数型のUnitが用意されている言語もあります(Kotlin Unit の特徴をまとめてみた)。

JavaScriptではvoid 演算子にある通り、voidはundefinedを返します。他にPythonなど動的型付け言語では、同様の動作となっていると思われます。動的型付けのスクリプト言語は実行時にコードが評価されることから、ビルドでエラーとして落とすことができず、このような動作にしていると思われます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?