我的项目中有以下代码。
var webpack = require('webpack');
var path = require('path');
var version = require('./package.json').version;
module.exports = {
entry: {
js: './src/main.js'
},
output: {
path: path.resolve('./dist/sdk'),
filename: [`oc-sdk-${version}.js`, 'oc-sdk-latest.js']
}
}
我的问题是如何在for循环可选中创建键和值,或检查它们中的任何一个是否为零? 我无法检查它们是否为零,警告说任何不能为零因为它是非可选的。
我正在考虑使用类似的东西 for(key:String?,value:String?){}但它没有用。
答案 0 :(得分:1)
字典中的键不能是可选的。 (密钥必须符合Hashable
协议,而选项不符合。)所以你 CAN' T 使字典中的密钥可选
如果您希望字典的值为Optionals
,则需要将其声明为Optionals
。
所以,例如,改变
let photoDic: [String: String] = ["key1": "http://www.someDomain.com/image.jpg"]
到
let photoDic: [String: String?] = ["key1": "http://www.someDomain.com/image.jpg"]
(请注意,photoDic
的类型已更改为[String: String?]
。)
答案 1 :(得分:0)
如前所述,字典中的所有键 根据定义是非可选的。
此外,NSDictionary
所有值 根据定义也是。
对此感到高兴,因为
nil
。 Swift字典理论上可以包含可选值,但实际上不鼓励使用它。出于兼容性原因,NSDictionary
nil
值表示密钥丢失。