小编Dev*_*ngh的帖子

绑定到例程参数的严格类型检查

具有以下常规定义

sub bar( Int @stuff ) {
    return [+] @stuff;
}
Run Code Online (Sandbox Code Playgroud)

以下两行均失败:

say bar( ^3 );
say bar( [1,2,3] );
Run Code Online (Sandbox Code Playgroud)

有错误

Type check failed in binding to parameter '@stuff'; 
expected Positional[Int] but got Array ($[1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

但是,使用相同的定义分配变量

my Int @works = [1,2,3] ;
say bar( @works );
Run Code Online (Sandbox Code Playgroud)

显然,变量分配和参数绑定不能以完全相同的方式工作,但这是因为类型检查很严格吗?
还是还有其他机制在起作用?

perl6

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

无法与PackageReference一起使用“ MSBuild.ILMerge.Task”

MSBuild.ILMerge.Task通过packagereference以下引用使用引用时出现错误:

error MSB4018: The "MSBuild.ILMerge.Task" task failed unexpectedly.
error MSB4018: System.IO.FileNotFoundException: Cannot find ILMerge 
executable.
error MSB4018:    at MSBuild.ILMerge.Task.LoadILMerge()
error MSB4018:    at MSBuild.ILMerge.Task.Execute()
error MSB4018:    at error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
Run Code Online (Sandbox Code Playgroud)

这是因为MSBuild.ILMerge.Task.dll在其程序包位置找不到ILMerge可执行文件。我想这可能是因为package.config和PackageReference之间的文件夹结构不同。

其他人遇到过这个问题吗?任何帮助都需要提前感谢

msbuild ilmerge packagereference

6
推荐指数
1
解决办法
1633
查看次数

检查某些字符的空字符串时,“ not in”身份运算符不起作用

检查空字符串变量是否填充了某些字符时,表达式始终被评估为true。如果新创建的字符串值为空,则应为false,它不包含任何字符,更不用说要检查的字符了。

当我硬编码不是正在检查表达式的字符的随机字符时,将被评估为false。

difficulty = ''

while difficulty not in 'EMH':
    print('Enter difficulty: E - Easy, M - Medium, H - Hard')
    difficulty = input().upper()
Run Code Online (Sandbox Code Playgroud)

我希望看到调试器进入while循环。实际发生的情况是它继续经过while块而没有执行。

python python-3.x

6
推荐指数
2
解决办法
250
查看次数

Python:json规范化“字符串索引必须是整数”错误

我在以下代码中收到类型错误,如“类型错误:字符串索引必须为整数”。

import pandas as pd 
import json
from pandas.io.json import json_normalize

full_json_df = pd.read_json('data/world_bank_projects.json')
json_nor = json_normalize(full_json_df, 'mjtheme_namecode')
json_nor.groupby('name')['code'].count().sort_values(ascending=False).head(10)
Run Code Online (Sandbox Code Playgroud)
Output:
TypeError                                 
Traceback (most recent call last)
<ipython-input-28-9401e8bf5427> in <module>()
      1 # Find the top 10 major project themes (using column 'mjtheme_namecode')
      2 
----> 3 json_nor = json_normalize(full_json_df, 'mjtheme_namecode')
      4 #json_nor.groupby('name')['code'].count().sort_values(ascending = False).head(10)
TypeError: string indices must be integers
Run Code Online (Sandbox Code Playgroud)

python json normalization

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

node.js 中未返回 Windows 环境变量

我已经将windows的环境变量设置如下:

setx port 8080 /M 
#prints out the expected output
echo %port% 
Run Code Online (Sandbox Code Playgroud)

并在我的 file.js 中有以下代码

const port = process.env.PORT;  
console.log(port); 
Run Code Online (Sandbox Code Playgroud)

但它总是将值打印为未定义,并且我的应用程序无法启动,尽管我的系统中存在此环境变量。感谢您的帮助。

windows cmd node.js

4
推荐指数
1
解决办法
1040
查看次数

如何将 json 对象列表转换为单个 pyspark 数据帧?

我是 pyspark 的新手,我有一个来自 api 的 json 列表,每个 json 对象都有相同的架构(键值对)。像这样

[ {'count': 308,
  'next': 'some_url',
  'previous': None,
  'results': [{'assigned_to': 43,
    'category': 'Unused',
    'comments': None,
    'completed_ts': None,
    'created': '2019-05-27T05:14:22.306843Z',
    'description': 'Pollution',
    'display_name': {'admin': False,
     'business_name': 'Test Business',
     'contact_number': 'some_number',
     'dob': None,
     'email': 'some_mail',
     'emp_id': None,
     'first_name': 'Alisha'}}]},
  {'count': 309,
  'next': 'some_url',
  'previous': None,
  'results': [{'assigned_to': 44,
    'category': 'Unused',
    'comments': None,
    'completed_ts': None,
    'created': '2019-05-27T05:14:22.306843Z',
    'description': 'Pollution',
    'display_name': {'admin': False,
     'business_name': 'Test Business',
     'contact_number': 'some_number',
     'dob': None,
     'email': 'some_mail',
     'emp_id': None,
     'first_name': 'Ali'}}]},......}] …
Run Code Online (Sandbox Code Playgroud)

python json machine-learning pyspark

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

制作功能字典

我正在尝试制作lambda函数的字典。它应该能够获取键并处理绑定到该键的任何功能,并输出结果。

func_dict = {
    "func1" : (z = lambda x, y: x + y),
    "func2" : (z = lambda x, y: x * y)
} # include benchmark functions

func = input("Choose a function: ")
output = func_dict[func](3, 5)
print(output)
Run Code Online (Sandbox Code Playgroud)

该示例应该可以打印,8但是无法运行,并且简单地给我can't assign to dictionary display错误提示

    {
    "func1" : (z = lambda x, y: x + y),
    "func2" : (z = lambda x, y: x * y)
}
Run Code Online (Sandbox Code Playgroud)

(缩进似乎不是问题)如果可能的话,我想避免使用eval()exec()

python python-3.x

3
推荐指数
2
解决办法
176
查看次数

嵌套 Python For 循环中 continue 的范围是什么?

使用嵌套 for 循环时,如果我在内部嵌套 for 循环中使用 continue,则 continue 的范围仅适用于内部循环还是会继续外部循环?

注意:对于我正在做的事情,我只想继续影响嵌套循环

b = ["hello"] * 5
d = ["world"] * 10

for a in b: # Outer Loop
    x = 1 + 1
    for c in d: # Nested Loop
        if c:
            x += 1
        else: 
            continue # Does this affect the Nested Loop or the Outer Loop
Run Code Online (Sandbox Code Playgroud)

python scope for-loop nested continue

3
推荐指数
1
解决办法
2325
查看次数

无法解析符号“BillingResponse”

我已经从以下 url https://developer.android.com/google/play/billing/billing_library_overview#java实现了计费库

我在这条线上出错

if (billingResult.getResponseCode() == BillingResponse.OK) {
Run Code Online (Sandbox Code Playgroud)

它说 Cannot resolve symbol 'BillingResponse'

这是上面链接的完整代码

billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
    if (billingResult.getResponseCode() == BillingResponse.OK) {
        // The BillingClient is ready. You can query purchases here.
    }
}
@Override
public void onBillingServiceDisconnected() {
    // Try to restart the connection on the next request to
    // Google Play by calling the startConnection() method.
}
});
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序build.gradle文件中添加了以下依赖项

dependencies {
    ...
    implementation 'com.android.billingclient:billing:2.1.0'
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误

我什至无法手动导入

import …
Run Code Online (Sandbox Code Playgroud)

java android billing android-billing

3
推荐指数
1
解决办法
1004
查看次数

在迭代python列表时修改元素时这种行为背后的原因是什么

在下面的代码中,第一种类型的修改改变了原始列表,而在第二个列表中保持不变。为什么行为是这样?

temp = [{"a":"b"},{"c":"d"},{"e":"f"},{"a":"c"}]

for item in temp:
    if "a" in item:
        item["a"] = "x"
print(temp)
Run Code Online (Sandbox Code Playgroud)
temp = [{"a":"b"},{"c":"d"},{"e":"f"},{"a":"c"}]

for item in temp:
    item  = {}
print(temp)
Run Code Online (Sandbox Code Playgroud)

第一个的输出是 [{'a': 'x'}, {'c': 'd'}, {'e': 'f'}, {'a': 'x'}]

第二个是 [{'a': 'b'}, {'c': 'd'}, {'e': 'f'}, {'a': 'c'}]

Python 版本是 3.6.5

python dictionary list python-3.x

2
推荐指数
1
解决办法
127
查看次数