在下面的代码中,我发现Book
{
@property (strong,nonatomic) NSString *bookId;
@property (strong,nonatomic) NSString *bookStatus;
@property (strong,nonatomic) NSString *bookName;
}
Book * book =[Book alloc]init];
[book setValue:@"textbook" forKey:@"bookName"]; //not working
book.bookStatus=@"textbook" //not working
[book setbookStatus:@"textbook"]; //not working
}
中的代码具有一定的优雅。我想用类似的公式写一个match_num_works()
匹配,但不能让它工作。我最终得到的String
不那么优雅。
match_text_works()
答案 0 :(得分:5)
它可能不是“优雅”或更好......但一个选项是将条件移动到匹配表达式中:
match foo_text {
&FooText { ref text } if text == "pattern" => (),
_ => ()
}
答案 1 :(得分:0)
请注意,您所需的模式实际上适用于&str
。您无法直接模式匹配String
,因为它是一个包含未公开内部缓冲区的更复杂的值。
struct FooText<'a> {
text: &'a str,
_other: u32,
}
fn main() {
let foo = FooText { text: "foo", _other: 5 };
match foo {
FooText { text: "foo", .. } => println!("Match!"),
_ => println!("No match"),
}
}