Ios SwiftUI-带条件的视图

Ios SwiftUI-带条件的视图,ios,swift,iphone,Ios,Swift,Iphone,我正在开发iOS应用程序。 我很好奇if{}else{}条件如何与SwiftUI视图一起工作 import SwiftUI struct SomeView: View { let condition: Bool var body: some View { if condition { ... } else { ... } } } 我想知道负条件下的代码是否被if条件生成但禁用?如果是这样,是否有可能

我正在开发iOS应用程序。 我很好奇
if{}else{}
条件如何与SwiftUI视图一起工作

import SwiftUI

struct SomeView: View {
   let condition: Bool

   var body: some View {
      if condition {
         ...
      } else {
         ...
      }
   }

}
我想知道负条件下的代码是否被
if
条件生成但禁用?如果是这样,是否有可能构建这样的视图,只生成满足特定条件的代码?用兰姆达的

我是Swift新手,任何例子都会有帮助 谢谢

SwiftUI使用一个。结果生成器允许您使用一组函数转换每个表达式语句,也就是说,它们允许您将所有表达式语句缩减为一个值,然后该值就是函数的结果

但是,这不会改变if-else的语义,除了继承转换结果并将其合并为一个值所必需的逻辑之外。你可以阅读更多关于这方面的内容

因此,不,如果其条件评估为true,则执行if块,如果条件评估为false,则执行else块。

SwiftUI使用一个。结果生成器允许您使用一组函数转换每个表达式语句,也就是说,它们允许您将所有表达式语句缩减为一个值,然后该值就是函数的结果

但是,这不会改变if-else的语义,除了继承转换结果并将其合并为一个值所必需的逻辑之外。你可以阅读更多关于这方面的内容



因此,不,if的块将在其条件评估为true时执行,else块将在其条件评估为false时执行。

我想说,因为它是一个闭包,所以编译整个代码,但在运行时,当调用闭包来构建视图时,只执行
if
的相关分支(取决于
条件
)@D.Mika上述代码不包含闭包或任何将被编译为闭包的内容。@id表示
视图
后面的部分是闭包。@D.Mika否,这是一个计算属性,不是闭包。请参阅。闭包是一个可以传递的值。没有方法获取和传递函数计算
所以它不是一个闭包。@idmean:你说得对。我的错。我想说,因为它是一个闭包,所以整个代码都会被编译,但是在运行时,当调用闭包来构建视图时,如果执行了,则只会执行
的相关分支(取决于
条件
)@D.Mika上述代码不包含闭包或任何将被编译为闭包的内容。@id表示
视图
后面的部分是闭包。@D.Mika否,这是一个计算属性,不是闭包。请参阅。闭包是一个可以传递的值。没有方法获取和传递函数计算
所以这不是一个结束。@我的意思是:你是对的。我的错。好吧,我明白了。所以即使是clousures也帮不上忙?我想知道我是否应该担心里面的某个地方在“工作”但是代码的隐藏部分。由于性能和其他明显的原因,我想跳过它。@MateuszKorga以什么方式提供帮助?您想实现什么?我知道在这两种情况下都会生成结果,但此“html”上的一个部分将被隐藏。是这样吗?还是只会生成真实的条件?只生成结果的一部分执行if并返回生成的视图。没有隐藏任何内容。好的,我明白了。所以即使clousures也帮不了忙?我想知道我是否应该担心内部某个地方正在“工作”但是代码的隐藏部分。由于性能和其他明显的原因,我想跳过它。@MateuszKorga以什么方式提供帮助?您想实现什么?我知道在这两种情况下都会生成结果,但此“html”上的一个部分将被隐藏。是这样吗?还是只会生成真实的条件?只生成结果的一部分执行if并返回生成的视图。没有隐藏任何内容。