คำถามติดแท็ก enums

ชนิดข้อมูลประกอบด้วยชุดของค่าที่กำหนดชื่อเรียกว่าองค์ประกอบสมาชิกหรือตัวแจงนับของชนิด

14
C ++: พิมพ์ค่า enum เป็นข้อความ
ถ้าฉันมี enum แบบนี้ enum Errors {ErrorA=0, ErrorB, ErrorC}; จากนั้นฉันต้องการพิมพ์ลงในคอนโซล Errors anError = ErrorA; cout<<anError;/// 0 will be printed แต่สิ่งที่ฉันต้องการคือข้อความ "ErrorA" ฉันสามารถทำได้โดยไม่ใช้ if / switch หรือไม่? แล้วทางออกของคุณสำหรับเรื่องนี้คืออะไร?
91 c++  enums 


12
ใครทราบวิธีแก้ปัญหาที่ดีสำหรับการขาดข้อ จำกัด ทั่วไปของ enum?
สิ่งที่ฉันต้องการทำมีดังนี้: ฉันมี enums ที่มีค่าสถานะรวมกัน public static class EnumExtension { public static bool IsSet<T>( this T input, T matchTo ) where T:enum //the constraint I want that doesn't exist in C#3 { return (input & matchTo) != 0; } } ดังนั้นฉันสามารถทำได้: MyEnum tester = MyEnum.FlagA | MyEnum.FlagB if( tester.IsSet( MyEnum.FlagA ) …
90 c#  .net  enums  flags 

5
จะเปรียบเทียบ enum กับค่าที่เกี่ยวข้องได้อย่างไรโดยไม่สนใจค่าที่เกี่ยวข้องใน Swift
หลังจากอ่านวิธีทดสอบความเท่าเทียมกันของ Swift enums กับค่าที่เกี่ยวข้องฉันได้ใช้ enum ต่อไปนี้: enum CardRank { case Number(Int) case Jack case Queen case King case Ace } func ==(a: CardRank, b: CardRank) -> Bool { switch (a, b) { case (.Number(let a), .Number(let b)) where a == b: return true case (.Jack, .Jack): return true case (.Queen, …

8
รับ enum ที่เกี่ยวข้องกับค่า int
ก่อนหน้านี้ฉันมี LegNo enums ของฉันที่กำหนดไว้ง่ายๆว่า: NO_LEG, LEG_ONE, LEG_TWO และด้วยการโทรreturn LegNo.values()[i];ฉันสามารถรับค่าที่เกี่ยวข้องกับแต่ละ enum แต่ตอนนี้ฉันตัดสินใจแล้วว่าฉันต้องการให้LegNoenum NO_LEGเป็น int -1 แทนที่จะเป็น 0 ดังนั้นฉันจึงตัดสินใจใช้ตัวสร้างส่วนตัวเพื่อเริ่มต้นและตั้งค่า int NO_LEG(-1), LEG_ONE(1), LEG_TWO(2); private LegNo(final int leg) { legNo = leg; } สิ่งเดียวตอนนี้ก็คือเพราะฉันทำแบบนี้วิธีนี้values()จะไม่ได้ผลกับNO_LEGenum ฉันจะรับ enum ที่เกี่ยวข้องกับ int ได้อย่างไร มีวิธีใดที่มีประสิทธิภาพในการทำสิ่งนี้นอกเหนือจากการใช้คำสั่ง case switch หรือ if-elseif-elseif ฉันเห็นคำถาม SO มากมายเกี่ยวกับการรับค่า int จาก enum แต่ฉันกลับหลัง
89 java  enums 

12
พิมพ์ข้อความแทนค่าจาก C enum
int main() { enum Days{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}; Days TheDay; int j = 0; printf("Please enter the day of the week (0 to 6)\n"); scanf("%d",&j); TheDay = Days(j); //how to PRINT THE VALUES stored in TheDay printf("%s",TheDay); // isnt working return 0; }
89 c  enums 

19
วิธีง่ายๆในการใช้ตัวแปรประเภท enum เป็นสตริงใน C?
นี่คือสิ่งที่ฉันพยายามทำ: typedef enum { ONE, TWO, THREE } Numbers; ฉันกำลังพยายามเขียนฟังก์ชันที่จะทำกรณีสวิตช์คล้ายกับต่อไปนี้: char num_str[10]; int process_numbers_str(Numbers num) { switch(num) { case ONE: case TWO: case THREE: { strcpy(num_str, num); //some way to get the symbolic constant name in here? } break; default: return 0; //no match return 1; } แทนที่จะกำหนดทุกกรณีมีวิธีตั้งค่าโดยใช้ตัวแปร enum เหมือนที่ฉันพยายามทำข้างต้นหรือไม่?

4
ไม่สามารถเข้าใกล้ typescript enum ภายใน HTML
ฉันสร้าง enum ด้วย typescript เพื่อใช้ใน MyService.service.ts MyComponent.component.ts และ MyComponent.component.html export enum ConnectionResult { Success, Failed } ฉันสามารถรับและเปรียบเทียบตัวแปร enum ที่กำหนดได้อย่างง่ายดายจาก MyService.service.ts: this.result = this.myService.getConnectionResult(); switch(this.result) { case ConnectionResult.Failed: doSomething(); break; case ConnectionResult.Success: doSomething(); break; } ฉันต้องการใช้ enum เพื่อเปรียบเทียบภายใน HTML ของฉันโดยใช้คำสั่ง * ngIf: <div *ngIf="result == ConnectionResult.Success; else failed"> <img src="../../assets/connection-success.png" height="300px" …

5
Enum vs enum พิมพ์อย่างมาก
ฉันเป็นมือใหม่ในการเขียนโปรแกรม C ++ วันนี้ผมเจอกระทู้ใหม่: enumขอพิมพ์ ฉันได้ค้นคว้าข้อมูลมาบ้างแล้ว แต่จนถึงตอนนี้ฉันยังไม่สามารถหาคำตอบได้ว่าทำไมเราถึงต้องการสิ่งนี้และอะไรคือสิ่งที่ใช้เหมือนกัน? ตัวอย่างเช่นหากเรามี: enum xyz{a, b, c}; /*a = 0, b = 1, c = 2, (Typical C format)*/ ทำไมเราต้องเขียน: enum class xyz{a, b, c}; เรากำลังพยายามทำอะไรที่นี่? ข้อสงสัยที่สำคัญที่สุดของฉันคือวิธีการใช้งาน คุณช่วยยกตัวอย่างเล็กน้อยซึ่งจะทำให้ฉันเข้าใจ
84 c++  c++11  enums 

2
จะกำหนดคุณสมบัติ Python Enum ได้อย่างไรหากค่า MySQL ENUM มีช่องว่างในชื่อ
ฉันมีEnumคลาสPython ดังนี้: from enum import Enum class Seniority(Enum): Intern = "Intern" Junior_Engineer = "Junior Engineer" Medior_Engineer = "Medior Engineer" Senior_Engineer = "Senior Engineer" ในฐานข้อมูล MYSQL คอลัมน์ ENUM อาวุโสมีค่า "ฝึกงาน", "วิศวกรจูเนียร์", "วิศวกร Medior", "วิศวกรอาวุโส" ปัญหาคือฉันได้รับข้อผิดพลาด: LookupError: "Junior Engineer" is not among the defined enum values ข้อผิดพลาดนี้เกิดขึ้นเมื่อฉันเรียกใช้แบบสอบถามเช่น: UserProperty.query.filter_by(full_name='John Doe').first() seniorityเป็นคุณสมบัติ enum ในUserPropertyรูปแบบ …

2
ทำไม EnumMap ไม่ใช่ SortedMap ใน Java?
EnumMap<K extends Enum<K>, V> ใน Java ถูกจัดเรียงอย่างชัดเจนโดยนิยามของ enum ที่เกี่ยวข้องอย่างที่คุณเห็นใน javadoc: แผนที่ Enum นั้นได้รับการบำรุงรักษาตามลำดับของกุญแจ (ตามลำดับที่ประกาศค่าคงที่ Enum) นี่คือภาพสะท้อนใน iterators กลับโดยมุมมองที่คอลเลกชัน ( keySet(), entrySet()และvalues()) สิ่งที่ฉันต้องการคือการSortedMapใช้ enum เป็นประเภทคีย์ ฉันต้องการใช้วิธีการเช่นheadMap()หรือfirstKey()แต่ฉันต้องการกำไรจากการเพิ่มประสิทธิภาพของซีพียู + หน่วยความจำของEnumMaps TreeMapเสียงเหมือนวิธีที่มากเกินไปค่าใช้จ่ายที่นี่ คำถาม : สิ่งนี้เพิ่งพลาดในการนำไปใช้หรือไม่มันเป็นความเกียจคร้าน (มาจากAbstractMap) หรือมีเหตุผลที่ดีว่าทำไมจึงEnumMapไม่ใช่SortedMap?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.