python - 是否可以在定义点为数组文字下标?
问题描述
我想在定义点下标一个数组文字,因为在初始访问之后我不需要数组:
int func(int index) {
return {1, 2, 3, 4, 5}[index];
}
注意:数组元素比这个例子更复杂。我也省略了边界检查。我只是好奇 C 语法是否允许这种构造/快捷方式。
编译上面的代码会导致:
error: syntax error before `{' token
我在 C 中尝试实现的 Python 等价物:
def func(index):
return [1,2,3,4,5][index]
解决方案
您可以使用所谓的复合文字:
#include <stdio.h>
int main(void) {
printf("%d\n",
(int[]){1,2,3,4,5}[2]);
return 0;
}
请参阅 C 标准草案第6.5.2.5 节复合文字
推荐阅读
- nginx - NGINX 不支持 tls1.2 密码
- c++ - 为什么我不能在 std::array< int, 3 > 的指针上使用运算符 [] 来索引值?
- google-apps-script - 使用谷歌脚本评估/计算连接语句
- android - 如何在 Room 中创建具有自动递增字段的新实体对象?
- node.js - Node.js 设计方法。服务器定期从客户端轮询
- json - 如何在 Delphi 10.3 中解析这个 json 数据?
- r - 使用 ggplot2 在 R 中创建“组合树”
- oracle - 我的触发器有什么问题?甲骨文 SQLPLUS
- ftp - AIX 7.1 匿名 ftp 失败
- python - 如何在 Colab 中将 Inception V4 从 .ckpt 转换为 .pb?