1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【個人開発】キリ番を判定するGoライブラリを作りました。

Posted at

キリ番とは

キリ番は節目や目標達成を象徴し、人々に喜びや達成感を与えます。ウェブサイトやオンラインプラットフォームでのアクセス数やフォロワー数の特定の節目は、成果や進捗の目安として重要視されます。また、キリ番は象徴的な意味を持ち、幸運や繁栄を象徴するとされています。これらの数字は完全性や調和、ポジティブなエネルギーを表し、人々に特別な意味を与えます。キリ番の達成は人々の関与や認知を促し、コミュニティやオンラインプラットフォームの活性化につながることがあります。そのため、キリ番は目標達成や節目の祝福だけでなく、人々のモチベーションや関与を高め、ポジティブな雰囲気を醸し出す重要な要素と言えます。

……とchatGPTが言ってました。

どういうライブラリ?

キリ番かどうかを判定したり、次のキリ番を返したりするGoのライブラリです。
リポジトリは以下です。

使い方

ほぼREADMEに書いてある内容通りですが、こちらにも載せます。

インストール

$ go get github.com/kumackey/kiriban

サンプルコード

main.go
package main

import (
	"fmt"
	"github.com/kumackey/kiriban/pkg/kiriban"
)

func main() {
	c, _ := kiriban.NewChecker()

	v1 := c.IsKiriban(10000)
	fmt.Printf("10000 is kiriban? -> %t\n", v1)

	v2 := c.IsKiriban(10001)
	fmt.Printf("10001 is kiriban? -> %t\n", v2)

	v3 := c.JudgeKinds(100000)
	fmt.Printf("100000 is %s\n", v3[0])

	v4 := c.Next(100000)
	fmt.Printf("next kiriban of 100000 is %d\n", v4)
}

実行結果

$ go run main.go
10000 is kiriban? -> true
10001 is kiriban? -> false
100000 is Trailing zeros
next kiriban of 100000 is 111111

工夫した点

  • キリ番の判定はぶっちゃけ正規表現を使うと楽だが、流石に重くなったので使わない方法で頑張って、パフォーマンスを改善した。
  • 将来的に様々なキリ番判定方法に対応できるように、functional options patternを使った。
  • おまけ程度のテストとCIを書いた。

最後に

みなさんも幸福や繁栄の象徴であるキリ番を判定する機会がよくあると思われますので(?)、いっぱい使ってください。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?