Web site created using create-react-app
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
Go言語でsliceの重複排除について書きます。Go 1.21前提です。 slices パッケージを使っての重複排除 Go 1.21から slices パッケージが増えました。ここに生えている関数を利用して重複削除のコードが書けます。 pkg.go.dev 例えば int の slice の重複排除は以下のように書けます。 integers := []int{1, 2, 2, 1} slices.Sort(integers) // [1 1 2 2] uniqValues := slices.Compact(integers) // [1 2] slices.Compact は連続する値を1つにまとめる関数なので、重複排除したい場合は slices.Sort で先にソートする必要があります。 User という struct の slice を id で重複排除したい場合はどうすればいいかと
この記事はGo7 Advent Calendar 2019の記事です。 Go には Java や Ruby などのモダン言語のような slice を操作する関数は用意されていません。 Go では built-in 関数のappend()やcopy() と for 構文を組み合わせることで、他の言語にあるような slice 操作を実装できます。 この記事ではそれぞれの slice 操作を図解で解説します。 元ネタは Go 公式 Wiki にあるGo SliceTricks - golang/go Wikiです。 Slice の連結 a = append(a, b...) コピー先 a にコピー元の b の全ての要素をコピーします。 連結後の長さが cap(a) を超える場合は、新たな slice が作成されて a、bともにコピーします。 以降はappend()のコピー先には十分なcapがある
デベロッパーのtann氏は3月20日、『Slice & Dice』をPC(Steam)にて正式にリリースした。あわせて、既に配信中であるitch.io/iOS/Android版も最新の3.0バージョンにアップデートされた。本作は配信開始早々、好評価を受けているようだ。 特筆すべきは、本作の戦闘がすべてダイスで進行するところだろう。ヒーローもモンスターもそれぞれ、違う内容で構成された6面のダイスを持っている。それぞれの個性を表すように、ダイスの構成もさまざまだ。6面とも平均的な数値で構成されているものもいれば、6面中4面がハズレで、残り2面は高ダメージとなっている構成のものもいる。また、呪文や特殊スキルを持っているヒーローも存在する。ヒーローの組み合わせ次第で、戦い方も千変万化だ。 『Slice & Dice』の戦闘ではまずモンスター側がダイスを振り、出た目に応じた行動を決める。プレイヤーは
どうも!LSSです!! 未だ掴みきれないborder-image。 ちょいと試しに「border-image-sliceはkeyframesでアニメーションにできるのか?」を試してみました。 実験 コード アニメ化できましたね! 実験 呼吸してるみたい コード <style> @keyframes testa{ 0%{border-image-slice:49%;} 100%{border-image-slice:35%;} } .test{ height:200px; border:40px solid; border-image-source:radial-gradient(farthest-side,transparent 59%,gray 60%,white,gray 89%,transparent 90%); animation:testa 3s infinite alterna
仙台市内大町西公園近くあるニューヨークスタイルのピザの店。 山形県山形市で2018年に創業したピザ店の2号店らしいです。 店内に入ると目の前に大きなショーケースに入った大きなピザがあります。 直径50センチくらいの大きなピザを八等分にカットした1スライスで提供する、 所謂ニューヨークスタイルのピザのお店です。 今日のお店は、「HAVE A GOOD SLICE 仙台店 」です。 千葉県の留守宅近くにもニューヨークスタイルのピザ店がありましたが閉店されたそうです。 かたやこちらのお店は大賑わいで、結構待ちましたが、美味しくて苦になりませんでした。 最後までおつき合い下さい。 目次 感染対策について お店の様子 pizza set 1 peace 750円 pizza set 1 peace 750円 + Gunness 650円 食べ終わって その他(お店情報ほか) お手洗い お店情報
Amazon Web Services ブログ MongoDB 互換の新しい Amazon DocumentDB 集計パイプライン演算子: $objectToArray、$arrayToObject、$slice、$mod、$range Amazon DocumentDB (MongoDB 互換) は、MongoDB のワークロードをサポートする高速でスケーラブル、かつ可用性に優れた完全マネージド型のドキュメント データベース サービスです。お客様は、基盤となるインフラストラクチャの管理を気にすることなく、現在ご使用のものと同じ MongoDB 向けのアプリケーションコード、ドライバー、ツールを、そのまま Amazon DocumentDB 上で実行や管理をしたり、処理負荷を調整したりするのに使えます。 今日、Amazon DocumentDB は、 5 つの集計パイプライン機能を新た
どうも!LSSです!! 前回の記事で、border-imageとborder-image-sliceを使ってグラデ―ションの枠線を描きましたが、border-imageはその他に「画像ファイルを枠線として使う」という事もできます。 できます、というより、多分、おそらく、そっちの方がメインの用途なんじゃないか?という気がします。 今回は、その「画像を使った枠線」を扱うCSSをやってみた話です。 画像を使用したborder-image 使用した画像 サンプル コードと解説 テストその1 width: 300px; height: 200px; border: 20px solid; border-image: url('画像ファイルのURL'); border-image-slice: 20; テストその5 border-image: url('画像ファイルのURL') 20; コピペする場合
Go ではポインタは扱えるけれど、ポインタ演算は扱えないというのが共通認識でした。もちろん unsafe.Pointer と uintptr を使う事で、出来なくはなかったのですが簡単ではありませんでした。 package main import ( "unsafe" ) type foo struct { k int64 v int64 } func main() { f := &foo{3,4} // unsafe.Pointer() で匿名ポインタにして // uintptr() で演算可能にして // +8 バイト(64bit)足して // unsafe.Pointer で匿名ポインタに戻して // そこにはフィールド v があるはずなので *int64 にキャストして // デリファレンスすれば出来上がり *(*int64)(unsafe.Pointer((uintptr(uns
AWS Database Blog New Amazon DocumentDB (with MongoDB compatibility) aggregation pipeline operators: $objectToArray, $arrayToObject, $slice, $mod, and $range Amazon DocumentDB (with MongoDB compatibility) is a fast, scalable, highly available, and fully managed document database service that supports MongoDB workloads. You can use the same MongoDB application code, drivers, and tools as you do tod
タイトルの通りなんですが、RustのsliceやVecがしっくり来ていないので、メモリ上でどのように表現されているのかという観点で理解を深めようと思います。 環境 ❯ cargo version cargo 1.32.0 ❯ rustc --version rustc 1.33.0 また今回の環境ではusizeは8バイト長です。 println!("size of usize: {}", std::mem::size_of::<usize>()); // size of usize: 8 事前準備 メモリ上でどのように表現されているか確認するため、RustのSizedとfatポインタ - 簡潔なQのas_raw_bytesを利用します。 引数xを*const Tでキャストして、生ポインタからstd::mem::size_of_val(x)で得たバイト長を読み出します。 fn as_raw_
Go で高速なコードを書くために使えるslice のベストプラクティスを、slice の仕組みを解説してから紹介します。 最適化の前提 本稿はコードの高速化を目的としています。そこで最適化にあたっての注意点を掲載します。 時期尚早な最適化は避けよう 最適化は、適切に計測しながら実施しよう 本稿の slice 高速化テクニックは、高速化するかケースバイケースのものも含まれます。計測しましょう。 方針 コードの高速化には、並列化やキャッシュなど様々なアプローチがあります。 しかし本稿ではアプローチを以下の3つに絞って、slice まわりのコードを高速化に関して解説していきます。 メモリアロケートのサイズを減らす メモリアロケートする回数を減らす 不要なメモリコピーを減らす slice の仕組み The Go Blog の Go Slices: usage and internalsが詳しいです
はじめに こんにちは、普段業務でGoを書いているkenと申します。 突然ですが問題です。 要素数が10,000個あるint型のスライスの中から100という要素が存在するかどうかを判定してくださいといわれたら、どんなコードを書けば良いでしょうか。 様々な実装方法があると思いますが、ネットで検索すると4つの選択肢が見つかりました。この記事ではその4つの方法をご紹介します。そして最後にはどの書き方を採用すべきなのかについても触れていこうかなと思います。 方法1: 愚直にひとつずつ探索していく 一番素直な実装だと思います。 与えられたスライスの要素をひとつずつ確認し、該当する要素があればtrueを返すというものです。 いわゆる線形探索というやつですね。 func simpleInFunction(slice []int, key int) bool { for _, s := range slic
この記事は Go7 Advent Calendar 2019 4日目の記事です。 Go7のカレンダー | Advent Calendar 2019 - QiitaGo7のカレンダーページです。https://qiita.com/advent-calendar/2019/go7 Arrayは固定長で扱いづらいから可変長のSliceを使う。 そのくらいにしか考えていませんでしたが、Effective go とかいろいろ読むうちに整理されたのでそれぞれの違いと操作について書き残しておきます。 SliceとArrayの関係最初に結論を言うと Slice は Array のポインタをフィールドに持つ構造体です。 具体的には 以下のように定義されています (slice.go) Slice は内部に持ったArrayを len フィールドの長さに切り出すことで 可変であるように振る舞います。 では cap
はじめに こんにちは。HRBrainでバックエンドエンジニアをしている@tonarinoheyです。 本記事はHRBrainのAdvent Calendar7日目に公開されました。 突然ですが皆さんは「クリスマス」って知っていますか。 僕は最近知りました。 先日2歳を迎えた息子も、保育園やYouTubeから「サンタさん」や「クリスマスプレゼント」なる概念を注入されてしまったらしく、無事カプセル化に失敗しています。 息子「ぶーぶ(自動車。空を飛ばないものだけを指す)、ちょーだい」 また我が家にトミカプレミアムが納車されるのか。うちのリビング、すでに大黒PA1みたいになってんのに。 クリスマスプレゼント、鮭フレークとかじゃ駄目かな。 子ども、鮭フレーク好きだし。僕も大好き。 Flaky Test is 何 フレークといえば、Flaky Testですよね。 そうなんだよ。考えるな。感じろ。 テス
sort.Sliceとsort.SliceStableを使用してGoのSliceをSortしてみる。 本記事のコード全体は以下。 https://play.golang.org/p/Lnj8kAwWxyy 安定ソート(stable sort)とは まずsortは安定ソートかどうかで挙動が異なる 安定ソート(stable sort)については以下がわかりやすいので引用させていただいた。 安定ソート(あんていソート、stable sort)とは、ソート(並び替え)のアルゴリズムのうち、同等なデータのソート前の順序が、ソート後も保存されるものをいう。つまり、ソート途中の各状態において、常に順位の位置関係を保っていることをいう。 たとえば、学生番号順に整列済みの学生データを、テストの点数順で安定ソートを用いて並べ替えたとき、ソート後のデータにおいて、同じ点数の学生は学生番号順で並ぶようになっている
はじめに この記事ではVertical Slice Architectureと呼ばれるアーキテクチャパターンについて解説します。Vertical Slice Architectureはこの2,3年の間にいくつかのブログポスト[1][2][3][4]で言及されているアーキテクチャです。Clean Architectureに対する反省から生まれたアーキテクチャであり、機能(feature)に沿ってモジュール分割を行う点が特徴です。 まず、Clean Architectureについて説明してからVertical Slice Architectureについて説明します。最後に私のコメントとして、Vertical Slice Architectureに対する評価、Clean Architectureに対する評価、それから日本でVertical Slice Architectureが受容され得るかどう
こんにちは。わたしです。 ネイルサロンは原宿だったり美容院は表参道、あとリピしたいな~と思ってるまつパのお店も表参道…という感じに最近とにかく表参道への出没率が高いわたし。 最近表参道へ来るとローストビーフ食べたり寿司食べたりとがっつりだったのでちょっとお安めで美味しいものが食べたい気持ちになり、すっごく久しぶり(大学生ぶり?)にPIZZA SLICEに行ってきたので紹介していこうと思います~! https://store.united-arrows.co.jp/shop/hby/pizza/ BEAUTY&YOUTHに併設されていて地下1階にお店はあります。この階段を下っていくとPIZZA SLICE。ちなみにこちらは2号店のようで1号店は代官山にあるみたい。 「海外気分が味わえるお店」としてもよく紹介されており、これちゃんと日本円で書かれているのですが(チーズスライス 390円)アメリ
はじめに 前回は、スライスマスターになりたいので、Slice Tricks(チートシート)を作って見ました💪 しかし、図が大きかったり、長く読みにくい記事を書いてしまったので、 前回記事にした記事の重要なところだけ(記事を書いていて学びの多かったところ)を抜粋しました!🙆 特に、忙しい人向けに、自分が重要だと感じるところを共有する記事(チートシート)です!🙇 元ネタ 🏆 スライスの要素追加, 結合 for _, i := range b { a = append(a, i) } a = append(a, b...) s1 := []int{1, 2, 3} s2 := []int{4, 5, 6} for _, i := range s2 { s1 = append(s1, i) } fmt.Println(s1) // [1 2 3 4 5 6] s3 := []int{1,
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く