问题标签 [weak-typing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 允许查询构建的数据层
我需要提供一个小型应用程序,允许客户端针对其本地数据库创建查询(或“规则”)并触发某些操作(发送邮件、短信和其他内容)。
由于他们将被允许为这项工作陈述实际的 SQL,我想知道我的数据层应该是什么样子。似乎我不需要实体和存储库,因为所有数据交互都是弱类型的。
那么我的数据层应该做什么呢?打开连接,接受输入的SQL,返回属性包列表?我什至需要一个数据层吗?
[更新]
这是客户希望在他的应用程序中拥有的,能够针对他们的数据库编写或构建查询。它将在他们的本地计算机上运行,这意味着恶意员工不需要 SQL 注入攻击。
但是即使我有一个可视化控件来构建查询、验证和清理它,这一层的最终结果是 SQL 代码,不是吗?如果我想测试它,我该如何抽象它?
perl - Try::Tiny:try-catch 的奇怪行为与否?
我正在使用Try::Tiny
try-catch。
代码如下:
...
当我执行它是这样的:
输出序列在我看来是错误的。这是错的吗?还是这是正常行为?
perl - 在 perl 中使用嵌套映射是一种好习惯吗?
像这样使用map
是一种好习惯吗?为什么不?如果没有,还有什么其他方法?
java - 弱类型,自动装箱,扩大转换之间有什么区别?
似乎弱类型的定义(不要与动态类型混淆)是当两个值都是不同类型时,二元运算符可以工作。
Python 程序员认为 Python 是强类型的,因为它1+"hello"
会失败而不是默默地做其他事情。相反,通常被认为是弱类型的其他语言(例如 PHP、JavaScript、Perl)会静默地转换一个或两个操作数。例如,在 JavaScript 中是1+"hello"
-> "1hello"
,而在 Perl 中是1+"hello"
-> 1
,但是1+"5"
-> 6
。
现在,我的印象是 Java 被认为是一种强类型语言,但自动(取消)装箱和扩大转换似乎与此相矛盾。例如,1+new Integer(1)
-> 2
、hello+"1"
-> "hello1"
、'A'+1
->66
和 long 可以自动转换为 float,即使它通常会被截断。Java是弱类型的吗?弱类型、自动装箱和扩大转换之间有什么区别?
php - PHP中的类型提示返回值/函数
我做了一些研究,发现了这个 RFC,它讨论了 PHP 中函数的类型提示: https ://wiki.php.net/rfc/returntypehint2
例如
将是有效的 PHP 代码。例如,在这种情况下,返回一个数组会产生错误。有谁知道 RFC 的状态,或者它是否被删除/添加?我似乎无法使上面的这个功能起作用。我正在使用 PHP 5.5.9。
php - PHP 字符串的布尔值
我试图了解 PHP 中字符串的真实性。我认为它可能像其他脚本语言,如 Javascript 或 Python。
好吧,有道理。
然后我尝试了
真的吗?这很奇怪。我猜 PHP 会首先尝试将字符串解析为数字。所以这也应该是false
啊?!?我真的很困惑,想知道是什么让字符串真实或不真实。
到目前为止,我还没有找到任何东西。
java - Java - 为什么我不能部分输入变量?
为什么在使用现有变量键入新变量时会键入全部或不键入?
例如,假设我有一个data
类型为的变量List<Map<String, ArrayList<String>>>
,我想将其值传递给tempData
. 为什么在决定tempData
我的类型时仅限于List
或List<Map<String, ArrayList<String>>>
?
如果我只想与某个“关卡”互动data
,比如说Map
关卡,我怎么跳到那里?例如为什么我不能List<Map> tempData = data
?
我已经搜索了我的教科书和这个网站,但我找不到任何解释为什么会这样的地方。如果我们被允许“部分输入”,是否会出现问题?
我知道我可以tempData
一开始就使用强类型,但我很好奇为什么 Java 有一种全有或全无的方法。
php - PHP 中没有意义的字符串
我正在试验 PHP 的弱/动态类型属性以准备测试,并且完全被这个字符串连接的输出所迷惑。有人可以解释这是怎么可能的吗?
输出:
2
types - 常量 1 截断为整数?
为什么这段代码不能编译?
是说1被截断了?或者那个 1 不能被截断?它在说哪个1?
有人回答上面的代码无法编译,因为b
是float64
. 但是为什么会这样编译:
? b
是 a float64
here,但可以传递给f
.
c++ - C++ 被认为是弱类型的吗?为什么?
我一直认为 C++ 是最强类型的语言之一。
所以我很震惊地看到这篇论文的表 3表明 C++ 是弱类型的。
显然,
C 和 C++ 被认为是弱类型,因为由于类型转换,人们可以将结构的一个整数字段解释为指针。
类型转换的存在是否重要?这种演员表的明确性无关紧要吗?
更一般地说,C++ 是弱类型的真的被普遍接受吗?为什么?