小编bre*_*den的帖子

为什么我必须将整数转换为float64以匹配类型?

我一直在玩Go,我在运行以下代码时遇到了Go的(非?)功能:

a := 1     //int
b := 1.0   //float64

c := a/b   //should be float64
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下运行时错误:

invalid operation: a / b (mismatched types int and float64) 
Run Code Online (Sandbox Code Playgroud)

我认为GoLang应该对类型推断很好.我为什么要写:

c := float64(a)/b    //float64
Run Code Online (Sandbox Code Playgroud)

通常,给定两种数字类型,c应该被推断为包含两者的最小类型.我不认为这是一种疏忽,所以我只是想弄清楚为什么这种行为已经决定了.仅出于可读性原因?或者我的建议行为是否会导致语言或其他某种逻辑上的不一致?

go

7
推荐指数
1
解决办法
5703
查看次数

在Python中迭代非None项

我有一个字符串列表,其中一些恰好是None:

headers = ['Name', None, 'HW1', 'HW2', None, 'HW4', 'EX1', None, None]
Run Code Online (Sandbox Code Playgroud)

现在我想迭代这个列表,但跳过None条目.例如,像这样的东西会很好:

for header in headers if header: print(header)
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有两种方法我可以使用它,但我不喜欢这两种方法:

for header in (item for item in headers if item): print(header)
Run Code Online (Sandbox Code Playgroud)

for header in headers:
    if header: print(header)
Run Code Online (Sandbox Code Playgroud)

我只是好奇是否有更好的方法.我觉得无视无.应该是非常基本的.

python

6
推荐指数
3
解决办法
3004
查看次数

标签 统计

go ×1

python ×1