- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何拥有一个类型为变量类型的变量?
这是什么意思?我有 python 和 java 背景。在这两种语言中,我都可以做一些事情,比如为变量分配一个类名。
#Python
class A:
def __init__(self):
self.a = "Some Value"
# And asigning the class name to a variable
class_A = A
# And create instance from class A by using class_A
a = class_A()
go 中是否有这样的机制允许我这样做?我不知道在他们的文档中哪里可以找到这些东西。老实说,我通常不知道这些在编程语言中叫什么。
例如我希望能够做到:
// For example, what would be the type of myType?
var myType type = int
我将使用此机制来获取“类型”参数。例如:
func Infer(value interface{}, type gotype) {...}
最佳答案
Is there such a mechanism in go that allows me to do that?
简短的回答是:不。
长答案是:这听起来像 XY Problem ,所以根据你实际想要完成的事情,可能有一种方法。跳到最后看看我在哪里解决了您的特定用例。
我怀疑如果您想将数据类型存储在变量中,那是因为您要么想将其他变量的类型与其进行比较,要么您可能想创建一个未知类型的变量。这两种场景都可以用Go来完成。
在第一种情况下,只需使用类型开关:
switch someVar.(type) {
case string:
// Do stringy things
case int:
// Do inty things
}
从语义上讲,这看起来很像将 someVar
的类型分配给隐式开关比较变量,然后与各种类型进行比较。
在我提到的第二种情况下,如果你想创建一个未知类型的变量,这可以使用反射以一种迂回的方式完成:
type := reflect.TypeOf(someVar)
newVar := reflect.New(type).Interface()
这里的 newVar
现在是一个接口(interface){}
,它包装了一个与 someVar
类型相同的变量。
在您的具体示例中:
I will use this mechanism to take "type" arguments. For example:
func Infer(value interface{}, type gotype) {...}
不,没有办法做到这一点。实际上,它与 Go 的变量支持的关系远不如与 Go 已编译这一事实的关系。
变量完全是一个运行时概念。函数签名(就像 Go 中的所有其他类型一样)在编译时是固定的。因此,运行时 变量不可能影响编译阶段。这在任何编译语言中都是如此,而不是 Go 中的特殊功能(或缺乏)。
关于go - 在 Go 中为变量分配类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45295185/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: How to nest OR statements in JavaScript? 有没有办法做到这一点:
在 JavaScript 中有没有办法让一个变量总是等于一个变量?喜欢var1 = var2但是当var2更新,也是var1 . 例子 var var1 = document.getElementBy
我正在努力理解这代表什么 var1 = var2 == var3 我的猜测是这等同于: if (var2 == var3): var1 = var2 最佳答案 赋值 var1 = var2
这个问题已经有答案了: What does the PHP error message "Notice: Use of undefined constant" mean? (2 个回答) 已关闭 8
我在临时表中有几条记录,我想从每条记录中获取一个值并将其添加到一个变量中,例如 color | caption -------------------------------- re
如何将字符串转为变量(字符串变量--> $variable)? 或者用逗号分隔的变量列表然后转换为实际变量。 我有 2 个文件: 列名文件 行文件 我需要根据字符串匹配行文件中的整行,并根据列名文件命
我有一个我无法解决的基本 php 问题,我也想了解为什么! $upperValueCB = 10; $passNodeMatrixSource = 'CB'; $topValue= '$uppe
这可能吗? php $variable = $variable1 || $variable2? 如果 $variable1 为空则使用 $variable2 是否存在类似的东西? 最佳答案 PHP 5
在 Perl 5.20 中,for 循环似乎能够修改模块作用域的变量,但不能修改父作用域中的词法变量。 #!/usr/bin/env perl use strict; use warnings; ou
为什么这不起作用: var variable; variable = variable.concat(variable2); $('#lunk').append(variable) 我无法弄清楚这一点
根据我的理解,在32位机器上,指针的sizeof是32位(4字节),而在64位机器上,它是8字节。无论它们指向什么数据类型,它们都有固定的大小。我的计算机在 64 位上运行,但是当我打印包含 * 的大
例如: int a = 10; a += 1.5; 这运行得很完美,但是 a = a+1.5; 此作业表示类型不匹配:无法从 double 转换为 int。所以我的问题是:+= 运算符 和= 运算符
您好,我写了这个 MySQL 存储过程,但我一直收到这个语法错误 #1064 - You have an error in your SQL syntax; check the manual that
我试图在我的场景中显示特定的奖牌,这取决于你的高分是基于关卡的目标。 // Get Medal Colour if levelHighscore goalScore { sc
我必须维护相当古老的 Visual C++ 源代码的大型代码库。我发现代码如下: bIsOk = !!m_ptr->isOpen(some Parameters) bIsOk的数据类型是bool,is
我有一个从 MySQL 数据库中提取的动态产品列表。在 list 上有一个立即联系 按钮,我正在使用一个 jquery Modal 脚本,它会弹出一个表单。 我的问题是尝试将产品信息变量传递给该弹出窗
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
jQuery Core Style Guidelines建议两种不同的方法来检查变量是否已定义。 全局变量:typeof variable === "undefined" 局部变量:variable
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: “Variable” Variables in Javascript? 我想肯定有一种方法可以在 JavaScrip
在语句中使用多重赋值有什么优点或缺点吗?在简单的例子中 var1 = var2 = true; 赋值是从右到左的(我相信 C# 中的所有赋值都是如此,而且可能是 Java,尽管我没有检查后者)。但是,
我是一名优秀的程序员,十分优秀!