私はSwiftの本を使っています。関数のスコープの考え方を理解していますので、次に理解したいのは、クラスでオプションの型を使ってグローバル変数を設定する理由です。正直なところ、これらの変数を設定するのではなく、コードベースのどこかに特定の型の変数、つまりvar sut: ItemManager!
があることをクラスに知らせるように見えます。swiftでオプションのグローバル変数を理解する
私が知っているから、変数sutは、明らかに有効な値を持ち、nilではないItemManger型のアンラップされたオプションです。私たちが感嘆符または疑問符でそれを設定した理由は、このクラス内にイニシャライザがないためです。このクラスに初期化子がないため、このグローバル変数を疑問符を使用してオプションに設定する天気を決定するとき、または感嘆符で暗黙的にアンラップしたときに、どのような要素が影響しますか?
import XCTest
@testable import ToDo
class ItemManagerTests: XCTestCase {
var sut: ItemManager!
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
sut = ItemManager.init()
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func test_ToDoCount_InitiallySetAtZero(){
let sut = ItemManager.init()
XCTAssertEqual(sut.toDoCount, 0)
}
func test_DoneCount_InitiallySetAtZero(){
let sut = ItemManager.init()
XCTAssertEqual(sut.doneCount, 0)
}
}
あなたのリストの最初の項目にはクレームも正しくありません。 IUOが価値を持たないことは間違いありません。あなたが誰かなしでアクセスしないようにしてください。 – Andreas