标签: strong-typing

408
推荐指数
8
解决办法
18万
查看次数

静态/动态与强/弱

我看到这些术语在编程中遍布各地,我对它们的含义有一个模糊的概念.搜索显示,事实上,这些事情已被问到堆栈溢出.据我所知,语言中的静态/动态类型与强/弱类型略有不同,但这种差异是我的意思.不同的来源似乎使用不同的含义甚至可以互换地使用这些术语.我找不到谈论两者的地方,实际上说明了差异.如果有人能够在这里为我和世界其他地方清楚地说明这一点,那会更好.

terminology static-typing weak-typing strong-typing dynamic-typing

303
推荐指数
9
解决办法
6万
查看次数

Python是强类型的吗?

我遇到过一些链接,说Python是一种强类型语言.

但是,我认为在强类型语言中你不能这样做:

bob = 1
bob = "bob"
Run Code Online (Sandbox Code Playgroud)

我认为强类型语言在运行时不接受类型更改.也许我对强/弱类型的定义错误(或过于简单).

那么,Python是一种强类型还是弱类型的语言?

python weak-typing strong-typing

219
推荐指数
8
解决办法
11万
查看次数

Objective-C中是否有强类型集合?

我是Mac/iPhone编程和Objective-C的新手.在C#和Java中,我们有"泛型",集合类的成员只能是声明的类型.例如,在C#中

Dictionary<int, MyCustomObject>

只能包含整数和值为MyCustomObject类型的键.Objective-C中是否存在类似的机制?

generics collections objective-c strong-typing data-structures

138
推荐指数
6
解决办法
5万
查看次数

PHP中的严格类型有什么作用?

我在PHP7中看到了这个新系列,但没有人真正解释它的含义.我用谷歌搜索了它,所有他们谈论的是你是否会启用它或者不喜欢民意调查类型.

declare(strict_types = 1);

它有什么作用?它如何影响我的代码?我应该这样做吗?一些解释会很好.

php weak-typing strong-typing php-7.2

92
推荐指数
2
解决办法
4万
查看次数

91
推荐指数
5
解决办法
4万
查看次数

是C强类型?

引用维基百科:

支持多种隐式转换的两种常用语言是C和C++,有时声称它们是弱类型语言.然而,其他人认为这些语言对如何混合不同类型的操作数有足够的限制,这两种应该被视为强类型语言.

有更确定的答案吗?

c strong-typing weakly-typed

78
推荐指数
8
解决办法
4万
查看次数

为什么我不能在C++中继承int?

我很想能够做到这一点:

class myInt : public int
{

};
Run Code Online (Sandbox Code Playgroud)

为什么我不能?

我为什么要这样?更强的打字.例如,我可以定义两个类intAintB,这让我做intA + intAintB + intB,但不是intA + intB.

"Ints不是课程." 所以呢?

"Ints没有任何会员数据." 是的,他们有,他们有32位,或其他什么.

"Ints没有任何会员功能." 好吧,他们有很多像+和的运营商-.

c++ inheritance integer language-design strong-typing

58
推荐指数
8
解决办法
2万
查看次数

输入numpy.ndarray的提示/注释(PEP 484)

有没有人为特定的numpy.ndarray类实现了类型提示?

现在,我正在使用打字.但是,如果有更具体的内容会更好.

例如,如果numpy人为其array_like对象类添加了一个类型别名.更好的是,在dtype级别实现支持,以便支持其他对象,以及ufunc.

numpy type-hinting strong-typing multidimensional-array python-3.5

47
推荐指数
5
解决办法
1万
查看次数

使用强类型语言还有多远?

假设我正在编写一个API,我的一个函数采用一个代表一个通道的参数,并且只会在值0和15之间.我可以这样写:

void Func(unsigned char channel)
{
    if(channel < 0 || channel > 15)
    { // throw some exception }
    // do something
}
Run Code Online (Sandbox Code Playgroud)

或者我是否利用C++作为强类型语言,并使自己成为一种类型:

class CChannel
{
public:
    CChannel(unsigned char value) : m_Value(value)
    {
        if(channel < 0 || channel > 15)
        { // throw some exception }
    }
    operator unsigned char() { return m_Value; }
private:
    unsigned char m_Value;
}
Run Code Online (Sandbox Code Playgroud)

我的功能现在变为:

void Func(const CChannel &channel)
{
    // No input checking required
    // do something
}
Run Code Online (Sandbox Code Playgroud)

但这总是矫枉过正吗?我喜欢自我记录,并保证它是它所说的,但它是否值得支付这样一个对象的构造和破坏,更不用说所有额外的打字?请让我知道您的意见和备选方案.

c++ api types strong-typing

42
推荐指数
6
解决办法
2357
查看次数