我想在postgres数据库中创建一个带有ENUM字段的表。
通常,当我们在postgresql中创建枚举时,我们将枚举命名为enum,以及我们要设置的列,选择该枚举名称。但在Codeigniter里我该怎么做呢?
下面是我的代码:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Migration_Admin_Locations extends CI_Migration {
public function up()
请查看以下代码:
<?php
enum Types:string {
case A = 'a';
case B = 'b';
}
#[Attribute(Attribute::TARGET_CLASS)]
class MyAttribute {
public function __construct(public readonly array $mapping)
{
}
}
#[MyAttribute(mapping: [Types::A->value => ''])]
class
我的表中有一个enum列,我正试图在下拉列表中获取我在表中设置的值。因此,首先我编写了这个查询来获取column_type和column_name
"SELECT `COLUMN_NAME`,`DATA_TYPE`,`COLUMN_TYPE` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='devsbh' AND `TABLE_NAME`='modules' AND `COLUMN_NAME` NOT IN ('created_at', 'updated_at
enum是用户定义的类型.一般情况下,C中的enum与C++之间没有很大的区别。除了C++中的作用域:如果在函数或类中声明了某些enum,则不能在声明的函数/类之外访问它。这不适用于C。
声明没有什么不同。例如,可以按以下方式声明新的enum (对于C和C++):
enum newEnum { zero = 0, one, two, three };
在定义新变量方面几乎没有区别。要用新定义的类型定义新变量,可以使用以下行:
enum newEnum varA = zero; // though allowed to skip enum keyword in C++
但有一点很有趣。在C++中
Enum是最近引入PHP的。我在一个拉拉项目里试验它们。我这里有我的明灯课:
namespace App\Enums;
enum AlertType
{
case SUCCESS;
case ERROR;
}
我正在尝试创建一个警报类,它将接受构造函数中的枚举来设置警报的严重性,这将决定它呈现给用户的颜色。这是一堂课:
<?php
namespace App\View\Components;
use App\Enums\AlertType;
use Illuminate\View\Component;
class Alert extends Component
{
经过一点快速跟踪后,我发现了一段代码(经常调用),它将一个枚举的值转换为另一个枚举的值,如下所示:
public Enum2 ConvertToEnum2(Enum1 enum1)
{
switch(enum1)
{
case Enum1.One:
return Enum2.One;
break;
case Enum1.Two:
return Enum2.Two;
break;
}
}
如果我将这些转换保存在字典中,并只执行以下操作,性能是否会更好:
public Enum2 Co
我想使用Swift循环一个最初在Objective中定义的enum。
目标C的定义现在如下:
typedef NS_ENUM(NSInteger, Enum) { A, B, C };
如果我尝试使用for e in Enum,我会从Swift编译器获得以下错误消息( Xcode 6.1.1中):
Type 'Enum.Type' does not conform to protocol Sequence.Type
少了什么?如果这是可能的话,我怎么能让这个枚举表现为一个序列呢?
我正在学习Java,并且写了一个非常简单的程序。在它中,我可以将枚举放在最顶层,但不能放在方法中。在我看来,枚举几乎就像常量,所以为什么不在方法中使用它们呢?
在我的程序中,允许使用enum1,但不允许使用enum2。为什么?
enum enum1 {A, B, C};
public static void main(String[] args)
{
enum enum2 {A, B, C}; // only on a top level class or interface
}
我有一个关于在java类中编写多个枚举的问题。我们可以要这样的吗?
你能帮我完成这个吗?
对于Ex:
public final class Test{
public enum Unit{
HORIZONTAL("HORIZONTAL");
}
public enum Code {
COMPANY ("COMPANY");
}
public enum Version{
ONE(1)
}
}
对于枚举类型,如下面所示,是否有一种很好的方法来获取枚举类型enum_t中的元素数
type enum_t is (ALFA, BRAVO, CHARLIE); -- Number of elements is 3
-- Don't work: length is not valid attribute for enum_t
constant ENUM_LENGTH : natural := enum_t'length; -- illegal!
根据David Koontz的回答,可以这样做:
constant ENUM_LENGTH : natural := enum_
在COM方案中,如何在Delphi中实现类型安全枚举?基本上,我想用封装在类中的一组静态最终对象引用替换枚举的一组基本常量。在Java中,我们可以这样做:
public final class Enum
{
public static final Enum ENUMITEM1 = new Enum ();
public static final Enum ENUMITEM2 = new Enum ();
//...
private Enum () {}
}
并使用自定义枚举类型进行比较:
if (anObject != Enum.ENUMITEM1) ...
我有一个图书馆,liba,一个像这样的:
typedef enum LIB_A_ENUM {
FOO,
BAR
} LIB_A_ENUM
在libb中,我有另一个枚举:
typedef enum LIB_B_ENUM {
FOO,
BAR,
BAZ // has a few different ones.
} LIB_B_ENUM
我想在libb中使用这两种方法:
int
some_function() {
if (LIB_A_ENUM.FOO) {
// ...
} else if (LIB_B_ENUM.FOO) {
// ...
}
}
想
我遇到了一些不同寻常的事情(至少对我来说……)我在Visual Studio2008和g++版本4.4.3中尝试了以下方法
#include <iostream>
using namespace std;
enum testEnum
{
// no zero enum
one = 1,
two = 2,
three = 3
};
int main(int argc, char *argv[])
{
testEnum e; // undefined value (may be zero, but thats just luck)
在switch-case语句的大小写常量中,C标准是如何讨论混合枚举的?我确保混合enum类型没有重复的值。
switch (value) /* value is int type */
{
case enum1_val: /* enum1_val is of enum type enum1 */
break;
case enum2_val: /* enum2_val is of enum type enum2 */
break;
}
我使用-ansi -Wall标志编译代码,但是Klockwork报告了这段代码中的一些问题。