Nim 0.20 のリリースは、言語の状態をコミットする最初の安定したブランチを形成するために必要ないくつかの互換性を破壊する変更を含む、最初の安定した 1.0 リリースのリリース候補と見なすことができます。 バージョン 1.0 は、言語の安定化部分における下位互換性の維持が保証される、安定した長期サポート リリースとして宣伝されています。 これとは別に、コンパイラで実験モードも利用可能になり、下位互換性を損なう可能性のある新機能が開発されます。
Nim 0.20 で提案されている変更のうち、特に強調できるのは次のとおりです。
- 「not」は常に単項演算子になりました。 「assert(not a)」のような式は無効になり、「assert not a」のみが許可されます。
- コンパイル時に整数と実数を変換するためのハード チェックが有効になります。 -16 は符号なし整数型に変換できないため、式「const b = uint1(-1)」はエラーになります。
- 定数およびループ変数のタプルのアンパックが提供されます。
たとえば、「const (d, e) = (7, "eight")」や「for (x, y) in f」のような代入が使用できるようになりました。 - ハッシュとテーブルのデフォルトの初期化が提供されました。 たとえば、「var s: HashSet[int]」を宣言した後、以前はエラーが発生していた「s.incl(5)」をすぐに実行できます。
- 「case」演算子および範囲外の配列インデックスに関連する問題に関するエラーの情報内容を改善しました。
- 反復中にテーブルの長さを変更することは禁止されています。
出所: オープンネット.ru