onevcat / swift-ui-book-issue

76 stars 0 forks source link

提一个代码 enum 相关的简化 #27

Closed thoamsy closed 4 years ago

thoamsy commented 4 years ago

其实我个人也挺久没写 Swift 了,在看到 49 页 这段代码的时候

var size: CGSize { 
  if case .digit(let value) = self, value != 0 {
    return CGSize(width: 88 * 2 + 8, height: 88)
  }

  return CGSize(width: 88, height: 88)
}

试探性地改成了 if self ~= .digit(0) {,碰巧还通过了🌚。 感觉可以在文章中提一些关于 模式匹配的话题,然后改成这段代码~

值得一提的是,写了太久 JS,过来写 Swift 有种醍醐灌顶的感觉😂,就是 Xcode 的格式化太麻烦了。

thoamsy commented 4 years ago

继续节省一个 issue,有一段这个代码

Text("123131323233")
        .font(.system(size: 76))
        .minimumScaleFactor(0.5)
        .padding(.trailing, 24)
        .lineLimit(1)
        .frame(
          minWidth: 0,
          maxWidth: .infinity,
          alignment: .trailing
      )

这里的 padding 仅仅设置为 .trailing 的话,还是会有点奇怪,改成 .horizontal 就没有问题啦~

image
onevcat commented 4 years ago

模式匹配的话这样是可以的,但是不太打算修改成这样,因为 ~= 其实相对用得比较少..if case 的话可能理解起来容易一些。

.horizontal 感谢。我去改一下。