如何使用SwiftUI在if语句中创建变量

如何使用SwiftUI在if语句中创建变量,swift,xcode,swiftui,Swift,Xcode,Swiftui,我在var主体中有一个ForEach循环:一些视图,但是在if循环之后,无法识别var。有办法解决这个问题吗 我尝试删除if循环并将其设置在body项之上。但是我得到了一个错误,在Self可用之前使用了te-isOldDate-var if self.Bol{ let OldDateType = self.OldDate.asDate }else{ var OldDateType = isNewDay } var isOldDate = (OldDateType, formatter:

我在
var主体中有一个ForEach循环:一些视图
,但是在if循环之后,无法识别var。有办法解决这个问题吗

我尝试删除if循环并将其设置在body项之上。但是我得到了一个错误,在Self可用之前使用了te-isOldDate-var

if self.Bol{
  let OldDateType = self.OldDate.asDate
}else{
  var OldDateType = isNewDay
}
var isOldDate = (OldDateType, formatter: ContentView.self.Day)
预期结果是应识别
var isOldDate


尝试将
if/else
编写为

let oldDateType = self.Bol ? self.OldDate.asDate : isNewDay

尝试将
if/else
作为

let oldDateType = self.Bol ? self.OldDate.asDate : isNewDay

这有几个问题。首先,您的常量和变量应该使用camelcase,并且其第一个字符应该是小写的:
let OldDateType=self.OldDate.asDate
应该是
let OldDateType=self.OldDate.asDate
,而
var OldDateType=isNewDay
应该是
var OldDateType=isNewDay
,虽然这些不会引起问题。查看swift的命名约定。这方面存在一些问题。首先,您的常量和变量应该使用camelcase,并且其第一个字符应该是小写的:
let OldDateType=self.OldDate.asDate
应该是
let OldDateType=self.OldDate.asDate
,而
var OldDateType=isNewDay
应该是
var OldDateType=isNewDay
,虽然这些不会引起问题。请使用swift查看命名约定,遗憾的是,它给出了一些错误:“不能对类型为'Bool'的非可选值使用可选更改”和“以“;”分隔的字符串上的连续语句”@Ruben,很抱歉这是一个输入错误。在?之前缺少一个空格,请参见更新的答案是的,我看到了,是的,写作的方式是有效的,但错误仍然存在:“使用未解析标识符'OldDateType'”您一定写错了,因为
OldDateType
是@joakim创建的。只有在创建之后才能使用它。这也是一个小写的第一个字母哦,真的,谢谢。那么,还有一个简短的问题。因为if语句是为了保护循环不做两次samen。对于这种类型,这是不可能的,因为您总是需要“else”语句。有没有办法改变这种状况?像另一个二进制运算符一样?遗憾的是,它给出了一些错误:“不能对类型为'Bool'的非可选值使用可选更改”和“用';'分隔一条直线上的连续语句”。@Ruben,很抱歉,这是一个输入错误。在?之前缺少一个空格,请参见更新的答案是的,我看到了,是的,写作的方式是有效的,但错误仍然存在:“使用未解析标识符'OldDateType'”您一定写错了,因为
OldDateType
是@joakim创建的。只有在创建之后才能使用它。这也是一个小写的第一个字母哦,真的,谢谢。那么,还有一个简短的问题。因为if语句是为了保护循环不做两次samen。对于这种类型,这是不可能的,因为您总是需要“else”语句。有没有办法改变这种状况?像另一个二进制运算符?