第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Swift編譯器錯誤:字符串連接上的“表達式太復雜”

Swift編譯器錯誤:字符串連接上的“表達式太復雜”

繁星淼淼 2019-08-12 18:10:58
Swift編譯器錯誤:字符串連接上的“表達式太復雜”我覺得這比任何事都更有趣。我修好了,但我想知道原因。這是錯誤:DataManager.swift:51:90: Expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions。為什么抱怨?這似乎是最簡單的表達方式之一。編譯器指向該columns + ");";部分func tableName() -> String { return("users"); } func createTableStatement(schema: [String]) -> String {     var schema = schema;     schema.append("id string");     schema.append("created integer");     schema.append("updated integer");     schema.append("model blob");     var columns: String = ",".join(schema);     var statement = "create table if not exists " + self.tableName() + "(" + columns + ");";     return(statement);}修復是:var statement = "create table if not exists " + self.tableName();statement += "(" + columns + ");";這也有效(通過@efischency),但我不喜歡它,因為我覺得(迷路了:var statement = "create table if not exists \(self.tableName()) (\(columns))"
查看完整描述

3 回答

?
慕無忌1623718

TA貢獻1744條經(jīng)驗 獲得超4個贊

這與接受的答案幾乎相同,但有一些額外的對話(我與Rob Napier,他的其他答案以及Cocoahead聚會的另一位朋友)和鏈接。

請參閱本討論中的評論。它的要點是:

+運營商的負荷過重,截至目前有27個不同的功能,所以如果你是串聯(lián)4串,即你有3個+運營商的編譯器來檢查,每次27個運營商之間,所以這是27 ^ 3倍。但那不是它。

還有一個檢查,看看是否lhsrhs+功能是,如果他們是它調(diào)用通過核心的兩個有效的append調(diào)用。在那里你可以看到可能會發(fā)生一些密集的檢查。如果字符串是非連續(xù)存儲的,那么如果你正在處理的字符串實際上是橋接到NSString的話就是這種情況。然后,Swift必須將所有字節(jié)數(shù)組緩沖區(qū)重新組裝成一個連續(xù)的緩沖區(qū),并且需要在此過程中創(chuàng)建新的緩沖區(qū)。然后你最終得到一個包含你試圖連接在一起的字符串的緩沖區(qū)。

簡而言之,有3個編譯器檢查集群會降低你的速度,即每個子表達式都必須根據(jù)它可能返回的所有內(nèi)容重新考慮。因此,使用插值連接字符串即使用" My fullName is \(firstName)  \(LastName)""My firstName is" + firstName + LastName插值沒有任何重載要好得多


查看完整回答
反對 回復 2019-08-12
?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

我有類似的問題:

expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

在Xcode 9.3中,行如下:

let media = entities.filter { (entity) -> Bool in

將其更改為以下內(nèi)容后:

let media = entities.filter { (entity: Entity) -> Bool in

一切順利。

可能它與Swift編譯器有關,試圖從代碼中推斷出數(shù)據(jù)類型。


查看完整回答
反對 回復 2019-08-12
  • 3 回答
  • 0 關注
  • 715 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號