ブックマーク / qiita.com/momotaro98 (3)

  • Visual Studio CodeでGo言語のデバッグ環境を整える - Qiita

    はじめに Visual Studio Code(以下VSCode)にてGo言語開発のデバッグができるようにするまでを示します。 前提条件 追記 2023年3月7日更新 以下の環境で動作確認済み MacOS OS version: 12.6 Monterey Chip: Apple M1 Goをインストール済み go version go1.20.1 darwin/arm64 $GOPATHを設定済み $GOPATH/binを環境変数$PATHへ追加済み VSCodeをインストール済み Version: 1.76.0 設定内容 delveをインストール VSCodeGoのデバッグをするにはdelveというデバッガツールをインストールする必要があります。delve自体は単独のコマンドラインで利用するGo言語用のデバッガでGo言語VSCode拡張機能がそれを利用しています。 Xcodeにて必要

    Visual Studio CodeでGo言語のデバッグ環境を整える - Qiita
    kkeisuke
    kkeisuke 2020/10/15
  • パスワード向け正規表現 /^(?=.*?[a-z])(?=.*?\d)[a-z\d]{8,100}$/i を解読する - Qiita

    これは 半角英字と半角数字それぞれ1文字以上含む8文字以上100文字以下の文字列 を意味しています。 正規表現レベル初級の自分にはこの表現がどういう意味なのかよくわからなかったので調査しました。 前提 処理系は JavaScript の正規表現エンジンを想定します。 読解 ^と$は何か それぞれ ^は文字列の先頭の位置 $は文字列の終端の位置 を意味します。それぞれ具体的な文字列としてマッチせずあくまで位置にマッチします。 [a-z\d]{8,100} は何か これは、「英字大小関わらずaからz、または、0から9の文字中で8字以上100字以下の連続」を意味しています。 [a-z\d]は英数字のうち任意の一文字を意味します。 {8,100}は直前の文字が8回から100回の間繰り返されていることを意味する量指定子(Quantifier)です。 ※1 なので[a-z\d]{8,100}は英数字の

    パスワード向け正規表現 /^(?=.*?[a-z])(?=.*?\d)[a-z\d]{8,100}$/i を解読する - Qiita
    kkeisuke
    kkeisuke 2020/06/10
  • なぜGo言語の正規表現は遅いと言われるの? - Qiita

    はじめに Goの正規表現は遅いと言われていることが以前から疑問だったので調査してみました。 こちらの記事やこちらの記事を拝見する限り ① 現実的なユースケース(例えばURLのパースなど)ではGo言語の正規表現は使うべきではなく、stringsパッケージの標準の関数を利用した方がパフォーマンスとしては良い。 ② Go言語で正規表現を利用するために必要な"正規表現オブジェクト"を並行にアクセスするにはパフォーマンスが問題になるので注意が必要。 とあります。その理由は、それぞれ以下に集約できるようです。 ① Go言語標準の正規表現ライブラリは、正規表現と検査文字列の長さに対して常に$O(n^2)$のオーダーで計算量が増加する安定したアルゴリズムを採用している。 ② "正規表現オブジェクト"を用いたマッチング処理には排他制御が行われている。 調べてみる Go言語のpkg/regexpの公式ドキュメ

    なぜGo言語の正規表現は遅いと言われるの? - Qiita
    kkeisuke
    kkeisuke 2019/08/26
  • 1