在swift中设置自己的值时是否安全?

时间:2016-12-29 01:57:19

标签: swift

我发现了一段代码如下:

[root@SHB-L0035222 bin]# mysql -u dubbom -D dubbomonitor -p -t </tmp/create.sql
Enter password:
ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE,
  KEY `index_method` (`method`) USING BTREE,
  KEY `index_invoke_da' at line 17

[root@SHB-L0035222 bin]# cat /tmp/create.sql
use dubbomonitor;
DROP TABLE IF EXISTS `dubbo_invoke`;
CREATE TABLE `dubbo_invoke` (
  `id` varchar(255) NOT NULL DEFAULT '',
  `invoke_date` date NOT NULL,
  `service` varchar(255) DEFAULT NULL,
  `method` varchar(255) DEFAULT NULL,
  `consumer` varchar(255) DEFAULT NULL,
  `provider` varchar(255) DEFAULT NULL,
  `type` varchar(255) DEFAULT '',
  `invoke_time` bigint(20) DEFAULT NULL,
  `success` int(11) DEFAULT NULL,
  `failure` int(11) DEFAULT NULL,
  `elapsed` int(11) DEFAULT NULL,
  `concurrent` int(11) DEFAULT NULL,
  `max_elapsed` int(11) DEFAULT NULL,
  `max_concurrent` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `index_service` (`service`) USING BTREE,
  KEY `index_method` (`method`) USING BTREE,
  KEY `index_invoke_date` (`invoke_date`) USING BTREE,
  KEY `index_invoke_time` (`invoke_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

这样安全吗?这好吗?

1 个答案:

答案 0 :(得分:0)

表达式p ?? OtherClass()相当于:

p != nil ? p! : OtherClass()

所以行p = p ?? OtherClass()几乎与:

相同
if p == nil {
    p = OtherClass()
}

所以,这是安全的。在保证行p具有非零值之后。

可能有更好的方法,所以我不能说它很好。但它还不错。