並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 57件

新着順 人気順

enumの検索結果1 - 40 件 / 57件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

enumに関するエントリは57件あります。 railsprogrammingプログラミング などが関連タグです。 人気エントリには 『プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers』などがあります。
  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる』でした! 世の中には再現が難しく一見してバグがありそうに思えないコードもありますが、一方でプロダクションコードの中にはひと目見てバグが有りそうなコードもまた多いものです。いくつかの特定のパターンをとる文字列(環境名など)やenum(以下どちらもenumと表現します)に関する条件分岐もその一つです。プルリクを見てこのようなパターンがあれば、バグの疑いが強くなります。周囲を見渡すと、大抵すでにバグっているか潜在バグを含むコードが見つかります。すべてバグというのは言い過ぎにせよ、わかりやすさと変

      プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
    • TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します

      LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog こんにちは。LINE Growth Technology UITチームの慶島(@pittanko_pta)です。 この記事では、TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します。 検証環境 TypeScriptからJavaScriptへのトランスパイルは https://www.typescriptlang.org/play (TypeScript 3.9.2 / targetはESNext) で行いました。 Tree-shaking の挙動については https://rollupjs.org/repl/ にトランスパイルしたJavaScriptコードを貼り付けて検証しました

        TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します
      • Enumとてもつらい、でも負けない - エムスリーテックブログ

        列挙型、JavaでいうならEnum型、使っていますか。使わないわけにいきませんよね。 でも、Enumを使っていたせいで辛い目にあったことありませんか。ないですか。それならきっともうすぐに辛い目にあうと思います。 Enumはすべてのプログラマに等しく辛みを与えてくれるからです。そんな辛みについて、ちょっと一緒に直視してみましょう。 エムスリーエンジニアリンググループ、Unit1(製薬企業向けプラットフォームチーム)三浦(@[email protected]) [記事一覧 ]がお送りいたします、エムスリー Advent Calendar 2023の6日目です。 アプリケーションプログラミング上の辛み 1. 既存のif文が偶発的に意図しない方に倒れる 2. switch文に至っては「どちらでもない」で処理不発に アプリケーションプログラミング上の対策 1. 分岐条件をEnumに持たせる 2. swi

          Enumとてもつらい、でも負けない - エムスリーテックブログ
        • さようなら、TypeScript enum - 株式会社カブク

          フロントエンドエンジニアの今村です。TypeScriptではenumを使わずunion型を使いましょう、という話を書きます。 モチベーション 何を今さら、と思う方もいるかもしれません。 TypeScriptのunion型はenum的なものを表現可能であり、基本的にenumよりもunion型を使うべき、という意識を持っているTypeScriptプログラマーはすでに少なからずいるのではないかと思います。しかし、ではenumの使用はいかなる場合も避けるべきなのか、そうでないとしたらどのような基準でenumとunion型を使い分けるべきなのか、といった点について、広く合意の取れたガイドラインはなさそうです(少なくとも私は知りません)。この結果、コードレビューなどで少しやりづらさを感じることがあったので、白黒つけてしまいたいという気持ちからこのブログを書いています。 結論としては、enumは全面的に

            さようなら、TypeScript enum - 株式会社カブク
          • C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?

            回答 (9件中の1件目) > C++のenumという型の使い方がよくわかりません。 C++に限りませんが、Enumは基本的にはカテゴリ変数を表すために使用します。例えば曜日には月曜日から日曜日の7通りまでしかなく、曜日を表す変数を整数(0-6)や文字列(mon, tue, …, sun)で扱おうとすると関数の引数で与えられたときにその範囲外の値が入ってきたかどうかをいちいちチェックしないといけません。しかし、事前にEnumでMonからSunまでの7つの値しかないDayOfWeekという型を定義しておくと、一度DayOfWeekに変換しておけば以降はもうチェックをする必要が無いことが型レ...

              C++のenumという型の使い方がよくわかりません。 enumを定義した後、その中にある定数はどのように扱うのでしょうか?
            • TypeScriptで「選択肢」の定義をEnum的な定数にまとめる――satisfiesとSSoTもあるよ

              ソート順の選択プルダウンがある一覧系ページを実装するとき、選択肢たちの管理方法に頭を悩ませることが多いと思います。 商品一覧ページの概要 ソート順プルダウンの選択肢たち 上の画像に示したような場合だと、 《クエリパラメータ》と《選択肢》の間の相互変換 ?sort=price&order=desc <--> 「価格が高い順」 《select の状態に使うための文字列》と《選択肢》の間の相互変換 <option value={id}>{label}</option> クエリパラメータが sort order の2つあり、それらをそのまま流用できないので 最低限でも、これらの変換ロジックを用意しておく必要がありますね。 この記事では、このような「選択肢と、それにまつわる変換ロジック群」を整理する方法を、高凝集・SSoT (Single Source of Truth; 信頼できる唯一の情報源)

                TypeScriptで「選択肢」の定義をEnum的な定数にまとめる――satisfiesとSSoTもあるよ
              • Java の enum を使いこなせるあなたに sealed interface

                はじめに Java の enum は大変便利で非常多くのシーンで活用されています。例えば区分を表すようなオブジェクトを表現したい際にもよく使われていますね。 Java 14 で正式機能となった switch式にて網羅性検査が行えるようになり、それまで以前ではどうしても抽象メソッド等を活用する必要があった処理についても、switch式を利用する事で簡潔に表現することができるようになりました。 また、Java 17 で正式機能となった sealed classes/interfaces と Java 21 で正式機能になった Record Patterns によって、これまで必要だった区分値のような enum を必ずしも定義しなくて良い場合も出てきました。 この記事では、今まで enum を使っていたコードがこれらの機能によってどのように変わるのかを紹介し、盲目的に enum を定義するのでは

                  Java の enum を使いこなせるあなたに sealed interface
                • ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる

                  この記事は、静的解析とビルドサイズ面で興味深いテーマでした。記事として自分の考えを書きます。 注意。あくまでビルドパフォーマンス視点での最適化です。強い意図があって、自分のドメインモデリングの方法論ではこれが最適なんだ、というなら元コードの方法論を止めるつもりはありません。 元記事のコードを minify するとどうなるか 元コードを参考に、それにアクセスするサンプルコードを書いてみます。 const sortingOptions = { priceDesc: { id: "priceDesc", sort: "price", order: "desc", label: "価格が高い順", }, priceAsc: { id: "priceAsc", sort: "price", order: "asc", label: "価格が安い順", }, ratingDesc: { id: "ra

                    ネストオブジェクトの罠 RE: TypeScriptで「選択肢」の定義をEnum的な定数にまとめる
                  • enumはクローズド直和、traitはオープン直和

                    本稿では直和による多態性を実現する2つの機能、enumとtraitを拡張性の観点から比較します。 → Expression problem ※enumとtraitを使い分けるにあたってはパフォーマンス要件など他の条件も考慮するべきですが、本記事は多態性の観点のみ説明します。 数式 — enumによる例 本稿では数式をあらわすデータ型を例として扱います。enumではこのように定義されます。 #[derive(Debug)] pub enum Expr { Var(String), Add(Box<Expr>, Box<Expr>), Sub(Box<Expr>, Box<Expr>), Mul(Box<Expr>, Box<Expr>), Div(Box<Expr>, Box<Expr>), } impl Expr { pub fn eval(&self, vars: &HashMap<St

                      enumはクローズド直和、traitはオープン直和
                    • Rails7.1からcolumn,enum名に使えない名前が増える可能性が高いので注意 - カレーの恩返し

                      3行まとめ Rails 7.1 から dup, freeze, hash, object_id, class, clone, frozen は column 名や enum の種類として使えなくなる可能性が高い 該当 column を持つ Model の initialize で ActiveRecord::DangerousAttributeError が発生する 各位そういった名前を使わない、rename するなど身構えておきましょう 起きていた問題 会社の Rails アプリケーションに対して rails/rails の main branch を使ってテストを走らせていたら以下のようなエラーを数多く見かけるようになった。 ActiveRecord::DangerousAttributeError: object_id is defined by Active Record. Che

                        Rails7.1からcolumn,enum名に使えない名前が増える可能性が高いので注意 - カレーの恩返し
                      • enumの使い方のおさらいと高機能enumとしてのSealedクラス - きしだのHatena

                        Javaでは複数の定数をまとめて扱う型としてenum(列挙型)が用意されています。 これはこれで便利なのですが物足りないところもあって、それがSealedクラスなどを使うことで解決できるようになるので、解説します。 enum型 enumは状態やデータ区分を表すのによく使われます。 構文は次のようになります。 enum 型名 { 列挙1, 列挙2, ... } 例えば次のような状態を表すとします。 この状態を表すenumは次のようになります。それぞれの値は大文字で書くようにします。 enum State { READY, RUNNING, SUSPENDED, TERMINATED } enumではそれぞれの値ごとに処理を行うということがよくあります。そこでswitchと相性がいいです。 State s = State.READY; switch (s) { case READY -> Sy

                          enumの使い方のおさらいと高機能enumとしてのSealedクラス - きしだのHatena
                        • Pythonの列挙型 (enum) - け日記

                          これまで定数クラスを作ってやり過ごすことが多かったのですが、enumが比較的使いやすかったので、 enum enumはPython 3.4から標準ライブラリに追加されたモジュールで、列挙型をサポートするものです。 docs.python.org 実装 最初にenumをインポートしておきます。Python 3.7.4を使っています。 import enum BTreeなどの木構造のノードを考えてみます。各ノードは根ノード (ROOT) 、中間ノード (INTERNAL) 、葉ノード (LEAF) の3種類のいずれかに分類されるものとします。 それをTreeNodeTypeという列挙型で表現すると、以下のようになります。Enumクラスを継承することで実装します。 列挙子 (ROOTなどの識別子) はnameとvalueとプロパティを持ってます 列挙子同士は比較可能ですが、列挙子と同じEnumオ

                            Pythonの列挙型 (enum) - け日記
                          • Rails: aasm gemは今すぐRailsの新しいenumに置き換えよう(翻訳)|TechRacho by BPS株式会社

                            概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Replace aasm with Rails Enum today | Arkency Blog 原文公開日: 2024/03/29 原著者: Szymon Fiedler 日本語タイトルは内容に即したものにしました。 参考: ステート・マシン - IBM Documentation Railsアプリには、いわゆるステートマシン実装を提供するgemが含まれていることがよくあります。それがaasmというgem(旧名acts_as_state_machine)である可能性はさらに高いでしょう(ところでacts_as_hasselhoffというジョークgemがあったのを覚えている人っていますか?)。 それはともかく、このaasm gemをActiveRecordモデルにincludeすると、かなりいろいろなことができるようになります

                              Rails: aasm gemは今すぐRailsの新しいenumに置き換えよう(翻訳)|TechRacho by BPS株式会社
                            • Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita

                              メモっとかないとよく忘れるんですよ…… (おい) 基本 Clone, Copy Default Debug, Display 比較 PartialEq, Eq PartialOrd, Ord 変換 Deref, DerefMut AsRef, AsMut Borrow, BorrowMut From, TryFrom FromStr ToOwned 出力 Binary Octal LowerHex, UpperHex LowerExp, UpperExp Pointer 特定用途向け エラー用 Error ハッシュテーブルの要素用 Hash コンテナー用 Extend FromIterator IntoIterator 演算子 Sum, Product Add, AddAssign, Sub, SubAssign, Mul, MulAssign, Div, DivAssign, Rem,

                                Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita
                              • PHP8.1が出たのでmyclabs/php-enumから列挙型(Enum)に置き換えが出来るか試してみた

                                環境 PHP 8.1.0 myclabs/php-enum 1.8.3 myclabs/php-enumを使って作った下記のサンプルコードを列挙型(Enum)に置き換えれるか試してみたいと思います。 declare(strict_types=1); use MyCLabs\Enum\Enum; class Cardsuit extends Enum { public const CLUBS = 1; public const DIAMONDS = 2; public const HEARTS = 3; public const SPADES = 4; public function label(): string { return match($this->value) { self::CLUBS => 'クラブ', self::DIAMONDS => 'ダイヤモンド', self::HE

                                  PHP8.1が出たのでmyclabs/php-enumから列挙型(Enum)に置き換えが出来るか試してみた
                                • A class-based enum pattern for JavaScript

                                  In this blog post, we examine a pattern for implementing enums in JavaScript that is based on classes. We’ll also take a look at Enumify, a library that helps with the enum pattern. Implementing enums: first attempts  # An enum is a type that consists of a set of values. For example, TypeScript has built-in enums and with them, we can define our own boolean type: enum MyBoolean { false, true, } Or

                                  • 入門Javaのenum - Qiita

                                    この記事のサンプルコードは、enumの説明に特化しています。それゆえ、一般的には良くないとされるコードも含まれています(金額の計算で BigDecimal ではなく int や double を使っているなど)。 分類などをどう表すか 例えば、架空のECサイトのシステムを考えます。このECサイトの会員にはブロンズ会員・シルバー会員・ゴールド会員の3つのランクがあり、ランクによって割引率などが異なります。これをどうやって表しましょうか? まずは良くない例です。 public class Rank { public static final int BRONZE = 1; public static final int SILVER = 2; public static final int GOLD = 3; }

                                      入門Javaのenum - Qiita
                                    • enum 超まとめ python3.11 - Qiita

                                      追記 本記事は当初python3.6 のenumについて書きました。 python3.7 からの機能は以下の通りです、大して変わってないです。 https://qiita.com/ksato9700/items/35a0bdc04693b3b09757#enum 3.8, 3.9, 3.10 が出ましたが、enumについては変更ないです。 3.11 は色々更新がありました。str型と比較できるStrEnumの追加や、制約を検証できるverify()デコレータの追加が大きいです。 前置き enum の機能自体は3.4からありますが3.6になってから追加機能が加えられています。 そこで改めてpython のenum全体をざらっとまとめる記事を書いてみたいと思いました。 参考: 公式ドキュメント https://docs.python.jp/3/library/enum.html 目次 enum

                                        enum 超まとめ python3.11 - Qiita
                                      • Kotlinのsealed型を使って高機能なenum型を実装する - ドワンゴ教育サービス開発者ブログ

                                        はじめに シンプルな実装例 sealed型による実装のメリット enumに階層関係を持たせることができる 個々の値を型として扱える sealed型による実装のデメリット 言語仕様が提供する便利機能を利用できない まとめ We are hiring! はじめに blog.nnn.dev Kotlinのsealed型の使い方を考える記事の第2弾です。 前回の記事では、sealed型を使って論理和型を実装しましたが、今回は通常の enum class よりも機能を拡張したenum型を実装したいと思います。 シンプルな実装例 通常、Kotlinでenum型を使いたい場合は、enum class を使って、次のように実装します。 /** * 学校で教える教科 (抜粋) */ enum class SchoolSubjectEnum { /** 日本史 */ JAPANESE_HISTORY, /**

                                          Kotlinのsealed型を使って高機能なenum型を実装する - ドワンゴ教育サービス開発者ブログ
                                        • 【Rails 7.1】ActiveRecord#Enumでメソッドの自動生成を制御する

                                          この記事は GMOアドマーケティング Advent Calendar 2023 4日目の記事です。 はじめに こんにちは。 GMOアドマーケティングの石丸です。 昨年のアドベントカレンダーでは Rails 7 で追加された ComparisonValidator について紹介しました。 GMOアドパートナーズ TECH BLOG byGMORails 7 で追加されたComparisonValidatorで日付のバリデーションを実装するこの記事は GMOアドマーケティング Advent Calendar 2022 3日目の記事です。はじめにこんにちは。GMOアドマーケティングの石丸(@thomi40)です。前回の記事では Rails 7 から実装された query_log_tags について紹介しました。今回の記事では同じく Rails 7 から追加された ComparisonValida

                                            【Rails 7.1】ActiveRecord#Enumでメソッドの自動生成を制御する
                                          • [Typescript] 「なぜ enum の利用が推奨されないのか?」をまとめてみた - Qiita

                                            はじめに Typescript にも他の言語と同様にenumが記法として実装されているのですが、次の記事ではenumではなく、Union typeを利用しようという内容が記載してありました。 さようなら、TypeScript enum: Kabuku Developers Blog 色々関連する記事を読んだ結論として、特にこだわりがなければ「Union type」を利用する方が良いと僕も思います。 その根拠 / 背景を以降まとめたいと思います。 なお、本記事のコードの検証には、Typescript Playground を利用しています。 Typescriptのenumについて enumはある型についてとりえる値を列挙します。(他の言語と同様) Typescriptでは文字列、または数値を値としてマッピングできます。 デフォルトでは、上から0,1,2...というように数値を自動で値として設

                                              [Typescript] 「なぜ enum の利用が推奨されないのか?」をまとめてみた - Qiita
                                            • 2024-08-25のJS: WebdriverIO v9、Node v22.7.0(TS `enum`と`namespace`の対応)、Deno 1.46(Last 1.x)

                                              JSer.info #704 - WebdriverIO v9がリリースされました。 WebdriverIO v9 Released | WebdriverIO 新しい機能として、WebDriver BiDiのサポート、urlコマンドの追加、addInitScriptコマンドの追加、setViewportコマンドの追加、ShadowRootのサポートなどがあります。 また、emulateコマンドでClockのエミュレーションサポートや、要素がinteractiveになるまで自動的に待機する変更も含まれています。 Node.js v22.7.0がリリースされました。 Node.js — Node v22.7.0 (Current) 新しい機能として、--experimental-transform-typesフラグによるTypeScriptのenumとnamespaceの変換をサポートしまし

                                                2024-08-25のJS: WebdriverIO v9、Node v22.7.0(TS `enum`と`namespace`の対応)、Deno 1.46(Last 1.x)
                                              • SQLアンチパターン:ENUMは使わない方がいいよ - Shiro's secret base

                                                どうも、シローです。 今回は、特定の文字列に限定した列を定義する方法について、アンチパターン「サーティワンフレーバー」も一緒に紹介します。 特定の値を持ちうる列とは 例えばユーザ(Users)の権限(管理者かメンバーか)を表したい場合、Usersテーブルにメンバーの権限を表すuser_roleという列を定義するとします。 このuser_roleには管理者の場合はadmin、メンバーの場合はmemberという値を持ちそれ以外の値は格納しない(できない)ようにするにはどうすれば良いのか アンチパターン「サーティワンフレーバー」について 先にアンチパターンについて紹介します。 サーティワンフレーバーと呼ばれる設計方法では特定の値を入れるために 列にCHECK制約を入れる(MySQL8.0以降) 列をENUM型にする という手法を取りうることです。 僕の環境はMySQL5.7なのでENUM型のカラ

                                                  SQLアンチパターン:ENUMは使わない方がいいよ - Shiro's secret base
                                                • GoとEnumについて

                                                  これはGo Advent Calendar 2022の21日目の記事です。 たびたび「Enumイディオム」がGoに欲しいという要望が話題になるのでその話をまとめてみる。 議論の中心はここが詳しい。 「Enumイディオム」が解決する課題 文字列表現がつく 反復処理ができる 偽の列挙値を導入することを防ぐ 名前空間を分離する などがあるらしい。上にあげた課題がGo標準では解決しにくいという理由がよく上がるのですが、Enumイディオムの追加方法は何パターンかあります。 Enum型プリミティブを言語仕様に加える ライブラリとしてEnumオブジェクト実装を提供する 現状の推奨「iotaによる手法+go-generate」による方法 「Enum型プリミティブを言語仕様に加える」について 言語実装のアップデートが必要 reflectパッケージのアップデートが必要 後方互換のためiota式とEnum式の2

                                                    GoとEnumについて
                                                  • 列挙型(enum)の問題点と代替手段 | TypeScript入門『サバイバルTypeScript』

                                                    TypeScriptの列挙型(enum)にはいくつか問題点が指摘されていてます。ここでは、その問題点と代替手段を説明します。 列挙型の問題点​列挙型はTypeScript独自すぎる​TypeScriptは、JavaScriptを拡張した言語です。拡張といっても、むやみに機能を足すのではなく、追加するのは型の世界に限ってです。こういった思想がTypeScriptにはあるため、型に関する部分を除けば、JavaScriptの文法から離れすぎない言語になっています。 JavaScriptの文法からドラスティックに離れたAltJSもあります。その中で、TypeScriptが多くの開発者に支持されているのは、JavaScriptから離れすぎないところに魅力があるからというのもひとつの要因です。 TypeScriptの列挙型に目を向けると、構文もJavaScriptに無いものであるだけでなく、コンパイル

                                                      列挙型(enum)の問題点と代替手段 | TypeScript入門『サバイバルTypeScript』
                                                    • TypescriptのEnum型の代わりにUnion型を使用する

                                                      この投稿は、弊社が提供するWESEEK TECH通信の一環です。 WESEEK TECH通信とは、WESEEKのエンジニアがキャッチアップした技術に関する情報を、techブログを通じて定期的に発信していくものです。 はじめに こんにちは、システムエンジニアの かおり です。この記事では、TypeScriptで用いられる Enum型 とUnion型の基本的な使い方から、Enumを避けるべきと言われている理由、Union型を用いてEnumのように書く方法などを説明しています。 Enum (列挙型) とは? そもそも Enum とは何か、なんのために使うものなのでしょうか。 ここで説明している Enum とは総称であり、列挙型とも呼ばれます。以下の例は TypeScript のコードですが、他の言語でも存在する概念・実装であり、複数の定数を一つにまとめて定義したり管理したりすることができます。

                                                        TypescriptのEnum型の代わりにUnion型を使用する
                                                      • 週刊Railsウォッチ(20200720前編)10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか|TechRacho by BPS株式会社

                                                        2020.07.20 週刊Railsウォッチ(20200720前編)10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか こんにちは、hachi8833です。情報処理技術者試験の秋の募集が始まりました。 元記事: IPA 独立行政法人 情報処理推進機構:試験実施案内:令和2年度10月試験について つっつきボイス:「そうそう、春のは中止でしたね」「受験する方はどぞよろしく〜」 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 ⚓臨時ニュース: Kaigi on RailsのCFPを7月末まで募集中 サイト: Kaigi on Rails 10/

                                                          週刊Railsウォッチ(20200720前編)10月開催「Kaigi on Rails」CFP募集中、enumにデフォルト値設定機能、RailsでBitemporal Data Modelほか|TechRacho by BPS株式会社
                                                        • [Rust] 静的ディスパッチ(Enum)と動的ディスパッチ(dyn Trait)はどちらが速いのか?

                                                          ある時、 Rust で動的ポリモーフィズムを実現するには、 Enum は dyn Trait より遅いという主張を見ました。 dyn Trait は仮想関数テーブルのルックアップがある分、遅いはずだと思っていたので、これは確かめてみようと思いました。 [2024/5/24追記]: 少し後で考えると、ここで静的ディスパッチという言葉を使うのは語弊があるような気がしたので補足します。静的ディスパッチとは、 dyn Trait に対する impl Trait のことを呼ぶことが多く、ここで Enum で実現しているのは「一つのコンテナに異なる型や挙動を示すオブジェクトを含める」という意味では動的ディスパッチです。正確に言うならば、この記事で示しているのは、同じ動的ディスパッチでも、 Enum を使った場合分けか、 dyn Trait を使った仮想関数テーブルを使ったポリモーフィズムかという違いで

                                                            [Rust] 静的ディスパッチ(Enum)と動的ディスパッチ(dyn Trait)はどちらが速いのか?
                                                          • 【Rails】Enumってどんな子?使えるの? - Qiita

                                                            はじめに RubyやRailsで、どのようにEnumが使えるか色々試してみました。 結果を忘れないうちに整理するための振り返りメモです。 間違っている点などあれば、ご指摘・指南頂ければ幸いです!!! Enumとは? 「Enum」は「列挙型」のこと。 この列挙型を扱う機能としてRuby on Rails4.1からActiveRecord :: Enumと言うモジュールが追加となりました。 この機能は、モデルの数値カラムに対して文字列による名前定義をマップすることができます。また、データ操作用の便利なメソッドも提供してくれます。 上手く説明できないですが、列挙型を扱うのに何か便利そうな機能です(0ω0)← 【参考】Ruby on Rails 4.1 リリースノート 【参考】Ruby on Rails 5.2.3 ActiveRecord::Enum ※ほぼコレを見るれば事足りる感が否めない笑

                                                              【Rails】Enumってどんな子?使えるの? - Qiita
                                                            • 「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能

                                                              「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能 Webアプリケーションの開発言語として知られるPHP言語の開発チームは、PHP 8.1の正式リリースを発表しました。 PHP's website has a nice overview of the new features too:https://t.co/pU0bPeiyjd — php.net (@official_php) November 25, 2021 PHP 8.1ではSymfonyのデモアプリケーションで23%の高速化、Wordpressで3.5%の高性能化を実現したと説明されています。 言語仕様としては、Enum型の追加、Readonly Propertiesの追加、変数の初期化でNewキーワードの利用が可能に、返値を返さない関数を記述するNeverキーワード

                                                                「PHP 8.1」正式リリース。PHP 8.0からさらに高速化、Enum型、非同期コードを簡単に記述など新機能
                                                              • ActiveRecord::EnumのI18n

                                                                ActiveRecordのenumにI18n用の機能を提供するgemをつくった。 https://github.com/r7kamura/activerecord-enum_translation どういうものか Userがenumを利用したstatusというカラムを持っているとすると、I18n用の辞書としてこういう風なデータを用意しておけば… ja: activerecord: attributes: user: name: 名前 status: active: 利用中 inactive: 停止中 次のようにメソッドを呼び出すことで、翻訳された辞書が利用できるようになる、というやつ。 user.human_enum_name_for(:status) #=> "利用中" 技術的な難題の解決とかは全く狙っていなくて、どちらかと言うと、この手の仕組みにルールが無くてアプリ内のいろんなところに

                                                                  ActiveRecord::EnumのI18n
                                                                • Rails 7のenumに新しい構文が導入(翻訳)|TechRacho by BPS株式会社

                                                                  概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Rails introduces new syntax for enum | Saeloun Blog 原文公開日: 2021-02-26 著者: Deepak Mahakale サイト: Saeloun Blog | Ruby on Rails Consulting Company based in San Francisco and Boston Rails 7の最新の変更で、enum定義に新しい構文が導入されました(#41328)。 変更前 従来の構文では、以下のように「enumの名前」「enumの値」「enumのオプション」を渡せます。 class Post < ActiveRecord::Base enum status: [ :draft, :published, :archived ], _prefix: true,

                                                                    Rails 7のenumに新しい構文が導入(翻訳)|TechRacho by BPS株式会社
                                                                  • Enum の代わりに使う union 型 | CYOKODOG

                                                                    Enum の代わりに union 型を使おうという風潮があるらしい TypeScript v3.4 から使えるconst assertionを用いると、使い勝手を損なわず Enum の代わりに union 型が使えるらしい Enum とは 列挙型とも呼ばれる TS にはあって JS には無いもの、他の言語(C、C#、Java とか)にもある 定数をひとまとめに定義できる enum Card { Clubs, // 0 Diamonds, // 1 Hearts, // 2 Spades, // 3 } const card: Card = Card.Hearts; console.log(card); // 2 上記のように値には連番が振られる 意味のある分かりやすい値をもたせたい場合は、文字列や任意の数値を設定することもできる enum Card { Clubs = "clubs", D

                                                                    • RailsのSTIやenumで想定外の値が入らないようにする方法 - Qiita

                                                                      まとめ STIやenumに入りうる値をテーブルで持ち、外部キー制約を追加しましょう。 サンプルリポジトリ やり方 idの型とSTIのカラムやenumのカラムの型を一致させる。 外部キー制約をはる。 class CreatePosts < ActiveRecord::Migration[6.0] def change create_table :posts do |t| t.string :type t.integer :state t.string :title t.text :body t.timestamps end create_table :post_states do |t| t.string :name t.timestamps end add_foreign_key :posts, :post_states, column: :state create_table :post

                                                                        RailsのSTIやenumで想定外の値が入らないようにする方法 - Qiita
                                                                      • そのif文、Enumにしてみませんか。 - mizzsugar’s blog

                                                                        これは、Python Advent Calendar 17日目の記事です。 Python Advent Calendar 2019 - Qiita この記事では、私が好きな標準モジュールのうちの一つenumモジュールの基本的な使い方と enumモジュールを使ってリファクタリングする例を紹介します。 enumモジュールとは 列挙型クラスをサポートします。 列挙型とは Pythonのドキュメントにはこう書かれています。 列挙型は、一意の定数値に束縛された識別名 (メンバー) の集合です。列挙型の中でメンバーの同一性を比較でき、列挙型自身でイテレートが可能です。 https://docs.python.org/ja/3.8/library/enum.html enum.Enumを使用した例 例えば、血液型を表すクラスがあるとします。 血液型はA, B, O, ABの4種類から成り立っています。

                                                                          そのif文、Enumにしてみませんか。 - mizzsugar’s blog
                                                                        • 週刊Railsウォッチ(20210315前編)Active Recordのenum関連改修、Active SupportのEnumerableでpluckが使えるほか|TechRacho by BPS株式会社

                                                                          週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Rails: 先週の改修(Rails公式ニュースより) 以下のコミットリストのChangelogを中心に見繕いました。 コミットリスト: Comparin

                                                                            週刊Railsウォッチ(20210315前編)Active Recordのenum関連改修、Active SupportのEnumerableでpluckが使えるほか|TechRacho by BPS株式会社
                                                                          • TypeScript の Enum がどのように JavaScript で表現されているか調べてみた。 - Qiita

                                                                            TypeScript の Enum がどのように JavaScript で表現されているか調べてみた。JavaScriptTypeScriptenum即時関数 TypeScript で列挙型として利用できる Enum ですが、JavaScript にトランスパイルされたコードを見て「どうなってんの?」と思ったので調べてみました。 平易な言葉を心がけて書いてます 😉 ちなむと、 TreeShaking の観点から Enum より Union Types のほうがいいよね、という意見があります。 私個人としても Union Types 推しなので、この投稿はあくまでも参考程度に読んでもらえればありがたいです。 参考記事: TypeScriptのenumを使わないほうがいい理由を、Tree-shakingの観点で紹介します - LINE Engineering トランスパイルされたコードを確認

                                                                              TypeScript の Enum がどのように JavaScript で表現されているか調べてみた。 - Qiita
                                                                            • なぜPHPにはEnumがないのか

                                                                              レガシーなアプリケーションにこそTypeScriptを採用するべきではないかと思ったのでちょっとまとめてみたよっていう話をするスライドです / Legacy code needs TypeScript

                                                                                なぜPHPにはEnumがないのか
                                                                              • Swiftでenum, class, protocolのどれを使うかの判断材料の比較 - Qiita

                                                                                導入 Swiftにおいて、ある共通の性質を持つ複数の個別の値を表そうとする場合、その共通の性質を型で表すために、言語機能としてenum, class, protocolのいずれかを使うことができます。この記事ではその選択の判断材料となる性質の違いを比較して整理します。また、その向いていない点であっても、それをカバーする実装パターンがある場合、それを紹介します。なお、この記事では「個別の型」と「個別の値」の語を意識して使い分けています。 性質の違い この章では、様々な性質について、3つの方式を比較します。 網羅性 共通の型としての値があるとき、実際の個別の値に応じて分岐する処理を書く際、全ての可能性を網羅しているか、コンパイラで静的に検査できると便利です。 enumは言語機能としてコンパイラによる網羅検査が提供されています。 // じゃんけん enum Janken { case guu c

                                                                                  Swiftでenum, class, protocolのどれを使うかの判断材料の比較 - Qiita
                                                                                • laravel-enumを使ってみたら快適だった | RE:ENGINES

                                                                                  はじめに こんにちは。Laravelでenumを使いたい時、PHPやLaravel本体ではサポートされていないのでComposer経由でパッケージを入れることになります。 今は bensampo/laravel-enum を使っており、とりあえず不自由ない感じなので、紹介しようと思います。 enumについて 列挙型 – Wikipedia railsで初めてenumを知ったのですが、C言語の時点で既にあったのですね。 私は「限られた値しか持てないデータ型」と認識してます。 例えば注文情報テーブルに支払方法を保存する時、データベースの orders テーブルに payment_type カラムを持たせるとします。 card, transfer, cash など支払方法名だけが orders.payment_type に入るようにしつつ、表示時は「クレジットカード」や「銀行振込」といった文字列

                                                                                    laravel-enumを使ってみたら快適だった | RE:ENGINES

                                                                                  新着記事