试一试代码与结果
试一试1:
代码:
let floatConst: Float = 4
//使用print将结果输出
print("floatConst结果为:\floatConst")
结果截图:

试一试2:
代码:
let label = "The width is "
let width = 94
let widthLabel = label + width
print(widthLabel)
结果截图:

试一试3:
代码:
let name = "John"
let floatA:Float = 5
let floatB:Float = 6
let sayA = "Hello,\(name).Would you give me the answer as 5+6,5-6,5*6,5/6?"
let sayB = "5+6 = \(floatA + floatB), 5-6 = \(floatA - floatB), 5*6 = \(floatA * floatB), 5/6 = \(floatA / floatB)"
print(sayA)
print(sayB)
结果截图:

试一试4:
代码一:
var optionalString: String? = "Hello"
print(optionalString == nil)
// Prints "false"
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}
print(greeting)
结果截图1:

代码二:
var optionalString: String? = "Hello"
print(optionalString == nil)
// Prints "false"
var optionalName: String? = nil
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello, \(name)"
}else{
greeting = "Hi"
}
print(greeting)

试一试5:
代码:
let vegetable = "red pepper"
switch vegetable {
case "celery":
print("Add some raisins and make ants on a log.")
case "cucumber", "watercress":
print("That would make a good tea sandwich.")
case let x where x.hasSuffix("pepper"):
print("Is it a spicy \(x)?")
}
结果截图:

试一试6:
代码:
var largest = 0
var largest_kind = ""
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
largest_kind = kind
}
}
}
print(largest,largest_kind)
结果截图:

试一试7:
代码:
func greet(person: String, lunch: String) -> String {
return "Hello \(person), today special lunch is \(lunch)."
}
var greetStr = greet(person: "Bob", lunch: "dumplings")
print(greetStr)
结果截图:

试一试8:
代码:
var numbers:[Int] = [0,1,2,3,4,5,6,7,8,9,10]
var newNumber:[Int] = numbers.map({ (number: Int) -> Int in
var result:Int = number
if(number % 2 == 1){
result = 0
}
return result
})
print(numbers)
print(newNumber)
结果截图:

试一试9:
代码:
class Shape {
var numberOfSides = 0
let sideLength = 5
func simpleDescription(number) -> String {
return "A shape with \(sideLength*number) sides."
}
}
var shape = Shape()
var round = shape.simpleDescription(3)
print(round)
结果截图:

试一试10:
代码:
class NamedShape {
var numberOfSides: Int = 0
var name: String
init(name: String) {
self.name = name
}
func simpleDescription() -> String {
return "A shape with \(numberOfSides) sides."
}
}
class Circle:NamedShape{
var radiu:Double
init(name: String,radiu:Double) {
self.radiu = radiu
super.init(name: name)
}
func area () -> Double {
return radiu * radiu * 3.14
}
override func simpleDescription() -> String {
return "\(name) with area \(area())"
}
}
var newCircle = Circle(name:"firstCircle",radiu:5.0)
let desc = newCircle.simpleDescription()
print(desc)
结果截图:

试一试11:
代码
enum Rank:Int {
case ace = 1
case two, three, four, five, six, seven, eight, nine, ten
case jack, queen, king
func simpleDescription() -> String {
switch self{
case .ace:
return "ace"
case .jack:
return "jack"
case .queen:
return "queen"
case .king:
return "king"
default:
return String(self.rawValue)
}
}
func compareRawValueWith(b:Rank) -> String{
if(self.rawValue>b.rawValue){
return "\(self)>\(b)"
}else if(self.rawValue == b.rawValue){
return "\(self)=\(b)"
}else{
return "\(self)<\(b)"
}
}
}
let a = Rank.jack
let b = Rank.jack
let stringP = a.compareRawValueWith(b: b)
print(stringP)
结果截图:

试一试12:
代码:
enum Suit {
case spades,hearts,diamonds,clubs
func simpleDescription() -> String {
switch self {
case .spades:
return "spades"
case .hearts:
return "hearts"
case .diamonds:
return "diamonds"
case .clubs:
return "clubs"
}
}
func color() -> String {
switch self {
case .spades:
return "black"
case .hearts:
return "red"
case .diamonds:
return "black"
case .clubs:
return "red"
}
}
}
let hearts = Suit.hearts
let heartsDescription = hearts.simpleDescription()
let heartsColor = hearts.color()
print(heartsColor)
结果截图:

试一试13:
代码:
enum ServerResponse {
case result(String, String)
case failure(String)
case raiseResult(String)
}
let success = ServerResponse.result("6:00 am", "8:09 pm")
let failure = ServerResponse.failure("Out of cheese.")
let raiseSuccess = ServerResponse.raiseResult("6:00 am")
switch raiseSuccess {
case let .result(sunrise, sunset):
print("Sunrise is at \(sunrise) and sunset is at \(sunset).")
case let .raiseResult(sunrise):
print("Sunrise is at \(sunrise)")
case let .failure(message):
print("Failure... \(message)")
}
结果截图:

试一试14:
代码
enum Rank:Int {
case ace = 1
case two, three, four, five, six, seven, eight, nine, ten
case jack, queen, king
func simpleDescription()->String{
switch self {
case .ace:
return "ace"
case .jack:
return "jack"
case .queen:
return "queen"
case .king:
return "king"
default:
return String(self.rawValue)
}
}
}
enum Suit {
case spades, hearts, diamonds, clubs
func simpleDescription()->String{
switch self {
case .spades:
return "spades"
case .hearts:
return "hearts"
case .diamonds:
return "diamonds"
case .clubs:
return "clubs"
}
}
func color()->String{
switch self {
case .spades:
return "black"
case .hearts:
return "red"
case .diamonds:
return "red"
case .clubs:
return "black"
}
}
}
struct Card {
var rank:Rank
var suit:Suit
func simpleDescription() -> String {
return "The \(rank.simpleDescription()) of \(suit.color()) \(suit.simpleDescription())"
}
}
func initCars ()->[Card] {
var cards:[Card] = []
let rankArr:[Rank] = [.ace, .two, .three, .four, .five, .six, .seven, .eight, .nine, .ten, .jack, .queen, .king]
let suitArr:[Suit] = [.spades, .hearts, .diamonds, .clubs]
for v in suitArr{
for n in rankArr{
let card = Card(rank: n, suit:v)
cards.append(card)
}
}
return cards
}
let cards = initCars()
for card in cards {
print(card.simpleDescription())
}
结果截图:

试一试15:
代码:
protocol ExampleProtocol {
var simpleDescription: String { get }
var simpleName: String { get }
mutating func adjust()
}
class SimpleClass: ExampleProtocol {
var simpleDescription: String = "A very simple class."
var simpleName: String = "Simple Class"
var anotherProperty: Int = 69105
func adjust() {
simpleDescription += " Now 100% adjusted."
}
}
var a = SimpleClass()
a.adjust()
let aDescription = a.simpleDescription
struct SimpleStructure: ExampleProtocol {
var simpleDescription: String = "A simple structure"
var simpleName: String = "Simple Struct"
mutating func adjust() {
simpleDescription += " (adjusted)"
}
}
var b = SimpleStructure()
b.adjust()
let bDescription = b.simpleDescription
结果截图:

试一试16:
代码:
protocol AbsoluteValue {
var absoluteValue: Int { get }
}
extension Double: AbsoluteValue{
var absoluteValue:Int{
return 5
}
}
var a = 1.2
print(a.absoluteValue)
结果截图:

试一试17:
代码:
enum PrinterError: Error {
case outOfPaper
case noToner
case onFire
}
func send(job: Int, toPrinter printerName: String) throws -> String {
if printerName == "Never Has Toner" {
throw PrinterError.noToner
}
return "Job sent"
}
do {
let printerResponse = try send(job: 1040, toPrinter: "Never Has Toner")
print(printerResponse)
} catch {
print(error)
}
// Prints "Job sent"
结果截图:

试一试18:
代码:
enum PrinterError: Error {
case outOfPaper
case noToner
case onFire
}
//增加已知错误之外的错误集,输出第三种错误
enum OtherError: Error{
case unknow
}
func send(job: Int, toPrinter printerName: String) throws -> String {
if printerName == "Never Has Toner" {
throw PrinterError.noToner
}else if printerName == "On Fire"{
throw PrinterError.onFire
}else if printerName == "Out of Paper"{
throw PrinterError.outOfPaper
}else if printerName == "Unknow Error"{
throw OtherError.unknow
}
return "Job sent"
}
//当传入的错误是"On Fire"时执行第一种结果
//当传入的参数属于PriterError时,除了onFire,都会输出第二种
do {
let printerResponse = try send(job: 1440, toPrinter: "Unknow Error")
print(printerResponse)
} catch PrinterError.onFire {
print("I'll just put this over here, with the rest of the fire.")
} catch let printerError as PrinterError {
print("Printer error: \(printerError).")
} catch {
print(error)
}
// Prints "Job sent"
结果截图:

试一试19:
代码:
func anyCommonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> [Any]
where T.Element: Equatable, T.Element == U.Element
{
var sameElement:[Any] = []
for lhsItem in lhs {
for rhsItem in rhs {
if lhsItem == rhsItem {
sameElement.append(rhsItem)
}
}
}
return sameElement
}
let a = anyCommonElements([1, 2, 3], [3])
print(a)
结果截图:

这篇博客详细展示了19个针对Swift 5.5的测试用例,包括不同代码实现及对应的运行结果截图,涵盖了各种语言特性和应用场景。
2413

被折叠的 条评论
为什么被折叠?



