2021-01-01から1年間の記事一覧
この記事は「Nim Advent Calendar 2021」の25日目の記事として登録させてもらっています。 契約プログラミングとは 事前条件 事後条件 不変条件 Nimで(お手軽)契約プログラミング 事前条件をチェックする 事後条件をチェックする pre/postで記述できるように…
この記事は「Nim Advent Calendar 2021」の24日目の記事として登録させてもらっています。 無名プロシージャの書き方 基本形 returnを省略 仮引数を省略(無い場合) 戻り値型を省略(無い場合) procと戻り値型を省略(=>記法を使う) do記法を使う(引数でのみ使…
この記事は「Nim Advent Calendar 2021」の23日目の記事として登録させてもらっています。 弱参照とは 弱参照を実装してみる 使用例 注意点 参考リンク 弱参照とは 弱参照の定義はいろいろあると思いますが、ここでは参照先が破棄されたことを検知できる参照…
この記事は「Nim Advent Calendar 2021」の21日目の記事として登録させてもらっています。 文字列リテラルと書式の組み合わせ爆発 Nimは複数の文字列リテラルの書き方があり、さらに書式も複数の書き方があります。 書式の書き方を羅列してみると… &"書式" &…
この記事は「Nim Advent Calendar 2021」の20日目の記事として登録させてもらっています。 NimのXMLパーサーについて (おまけ)SAXにするかDOMにするか XMLファイルを読み込む DOM(XmlNode)にアクセスする 自身(要素)の情報にアクセスする 子要素を取得する …
この記事は「Nim Advent Calendar 2021」の17日目の記事として登録させてもらっています。 問題 突然ですが、genericsの型引数が同一の型を指すのかどうかを判定したい場合どうすればよいでしょうか。 proc hoge[T,U]() = when T == U: assert( false ) echo…
この記事は「Nim Advent Calendar 2021」の16日目の記事として登録させてもらっています。 C++のdynamic_cast C++にはdynamic_castというキャストがあり、これを使うと安全にダウンキャスト*1を行うことができます。 ここでいう「安全」とは、ダウンキャスト…
この記事は「Nim Advent Calendar 2021」15日目の記事として登録させてもらっています。 オンライン実行環境 プログラミング中、プログラミング言語の文法や挙動を確認してみたくなることがあります。そういうときに便利なのがWebサイト上でコードの入力と実…
この記事は「Nim Advent Calendar 2021」の9日目の記事として登録させてもらっています。 はじめに Nimとは Nimのインストール choosenimのインストール(Macの場合) xzコマンドのインストール(必要な場合) homebrewのインストール(必要な場合) choosenimのイ…
このブログも結構放置してしまっていますが、久しぶりに見たら一部のアイコンや画像が表示されなくなってました。 ↓右側の日付のところや、左側のプロフィールのところのアイコンが表示エラーになっています ↓正しい表示はこんな感じです 原因 表示されてい…