我看到这些术语在编程中遍布各地,我对它们的含义有一个模糊的概念.搜索显示,事实上,这些事情已被问到堆栈溢出.据我所知,语言中的静态/动态类型与强/弱类型略有不同,但这种差异是我的意思.不同的来源似乎使用不同的含义甚至可以互换地使用这些术语.我找不到谈论两者的地方,实际上说明了差异.如果有人能够在这里为我和世界其他地方清楚地说明这一点,那会更好.
terminology static-typing weak-typing strong-typing dynamic-typing
我遇到过一些链接,说Python是一种强类型语言.
但是,我认为在强类型语言中你不能这样做:
bob = 1
bob = "bob"
Run Code Online (Sandbox Code Playgroud)
我认为强类型语言在运行时不接受类型更改.也许我对强/弱类型的定义错误(或过于简单).
那么,Python是一种强类型还是弱类型的语言?
我是Mac/iPhone编程和Objective-C的新手.在C#和Java中,我们有"泛型",集合类的成员只能是声明的类型.例如,在C#中
Dictionary<int, MyCustomObject>
只能包含整数和值为MyCustomObject类型的键.Objective-C中是否存在类似的机制?
generics collections objective-c strong-typing data-structures
我在PHP7中看到了这个新系列,但没有人真正解释它的含义.我用谷歌搜索了它,所有他们谈论的是你是否会启用它或者不喜欢民意调查类型.
declare(strict_types = 1);
它有什么作用?它如何影响我的代码?我应该这样做吗?一些解释会很好.
我可以创建一个所有元素都是类型的NSMutableArray
实例吗?SomeClass
generics collections objective-c strong-typing data-structures
我很想能够做到这一点:
class myInt : public int
{
};
Run Code Online (Sandbox Code Playgroud)
为什么我不能?
我为什么要这样?更强的打字.例如,我可以定义两个类intA
和intB
,这让我做intA + intA
或intB + intB
,但不是intA + intB
.
"Ints不是课程." 所以呢?
"Ints没有任何会员数据." 是的,他们有,他们有32位,或其他什么.
"Ints没有任何会员功能." 好吧,他们有很多像+
和的运营商-
.
有没有人为特定的numpy.ndarray类实现了类型提示?
现在,我正在使用打字.但是,如果有更具体的内容会更好.
例如,如果numpy人为其array_like对象类添加了一个类型别名.更好的是,在dtype级别实现支持,以便支持其他对象,以及ufunc.
numpy type-hinting strong-typing multidimensional-array python-3.5
假设我正在编写一个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)
但这总是矫枉过正吗?我喜欢自我记录,并保证它是它所说的,但它是否值得支付这样一个对象的构造和破坏,更不用说所有额外的打字?请让我知道您的意见和备选方案.
strong-typing ×10
weak-typing ×3
c++ ×2
collections ×2
generics ×2
objective-c ×2
api ×1
c ×1
inheritance ×1
integer ×1
numpy ×1
php ×1
php-7.2 ×1
python ×1
python-3.5 ×1
terminology ×1
type-hinting ×1
type-safety ×1
types ×1
weakly-typed ×1