免责声明: swift noob
嗨,我刚刚开始学习Swift,并且正在学习Swift编程语言(苹果在WWDC期间发布的书),我想知道“where”关键字是什么。它被用于
let vegetable = "red pepper"
switch vegetable {
case "celery":
let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
let ve
我在Swift中有一个切换功能的问题,我不明白为什么下面的第一个代码可以工作,但是第二个代码不能。提前感谢你的帮助。
第一个有效的代码是:
for i in 1...100 {
switch (i) {
case _ where (i % 3 == 0) && (i % 5 == 0):
println("FizzBuzz")
case _ where i % 3 == 0:
println("Fizz")
case _ where i % 5 == 0:
print
我遇到了这段代码,它是中链接列表的Swift实现的一部分。在整个实现过程中,作者在打开一个可选的包之前使用了case let,后面跟着一个while语句。我从未见过在switch语句上下文之外使用case关键字,我想知道它到底做了什么?它是否以某种方式将let next? = node.next部分转换为真或假,这可能取决于next?是否变为零?
public var last: Node? {
if var node = head {
while case let next? = node.next {
node = next
在下面比较元组的开关语句中,我希望它会打印“点在x轴上”和“在测试范围内”,而不是在第一个匹配大小写之后打印所有内容。也许我误解了,但我认为在Swift中,跌倒可以让你在进入案件时继续检查案件吗?
let switchPoint = (1,0)
switch switchPoint
{
case (0,0):
print("origin")
fallthrough
case (_,0):
print("point is on x axis")
fallthrough
case
我最初受到Swift的鼓励,因为终于可以使用字符串编写switch语句了,这意味着基于字典的代码现在几乎是可读的。
let kMyDictionaryKey1 = "one" // use 'let' to declare constant dictionary key
let kMyDictionaryKey2 = "two" // use 'let' to declare constant dictionary key
println( "hello world" );
if ( true )
{
我有两个孩子:
public enum ServerState {
case Connecting
case Open
case LoggedIn
case Closed
case Error(NSError)
}
enum TransportLayerState {
case Disconnected(NSError?)
case Connecting
case Connected
}
如果基础TL状态将ServerState设置为不可能的状态,则需要在它们之间切换并返回'false‘。例如,如果serverState == .Open &&
var stream: DataStream? = nil
switch stream {
case nil:
print("No data stream is configured.")
case let x?:
print("The data stream has \(x.availableBytes) bytes available.")
}
通过引用,上述内容将调用public func ~= <T>(lhs: _OptionalNilComparisonType, rhs: T?) -> Bool函数。在这个函数中还有另一种切
几天前,我在Xcode 9中将我的旧Xcode 8项目转换为Swift 4。我注意到在代码上方生成了额外的Swift代码以及解释。
以下是它看起来的样子:
// FIXME: comparison operators with optionals were removed from the Swift Standard Libary.
// Consider refactoring the code to use the non-optional operators.
fileprivate func < <T : Comparable>(lhs: T?, rhs: T?)
是否可以在同一行中过滤枚举包含值的Enum情况数组?
现在我在做
let modes = [FilterMode]()
for mode in modes {
if case .categories(let data) = mode {}
}
我想做的是这样的事情
for mode in modes where case .categories(let data) = mode {}
或者类似的东西。这在Swift 3中是可行的吗?
由于case:阻止了自动中断,Swift提供了keyword关键字。这是有限的,因为它不会掉到下一个条件测试,它绕过下一个测试,只执行下一个测试中的代码。是否可以让开关语句在多个情况下执行代码,同时也执行条件值?
作为Swift文档中的一个例子,如果我需要下面的代码来执行适用于给定点的每个块,该怎么办?
let somePoint = (0, 0)
switch somePoint {
case (0, 0):
print("\(somePoint) is at the origin")
case (_, 0):
print("\(somePoint)
我有输入文件 (请解压)和下面的代码。就在打印“pat=\n”之后;它挂在模式匹配中,而我在(v5.010000)中看到它占用25%的CPU时间:
use strict;
open FP, "<default.php" or die "can't read";
$/ = undef;
my $content = <FP>;
while ( $content =~ /(['"])([^\s\x00-\x1f]{300,})\1/gs ) {
#looks like we've found base e
我已经反编译了一个非常简单的类,它使用了新的Java7字符串开关特性。
类:
public class StringSwitch {
public static void main(String[] args) {
final String color = "red";
switch (color) {
case "red":
System.out.println("IS RED!");
break;
我有这根绳子
"Hello there, this is some line-aa."
如何将其分割成这样的数组?
Hello
there,
this
is
some
line-aa.
这就是我迄今所尝试过的
function sliceSpaces(arg)
local list = {}
for k in arg:gmatch("%w+") do
print(k)
table.insert(list, k)
end
return list
end
local sentence = "مرحبا يا اخوتي
如何区分Swift中什么是泛型值?
例如,值'T‘做什么,值'E’做什么?
func ??<T, E>(result: Result<T, E>, handleError: (E) -> T) -> T {
switch result {
case let .success(value):
return value
case let .failure(error):
return handleError(error)
}
}
enum Tree<Element: Comparable> {
case empty
indirect case node(Tree<Element>, Element, Tree<Element>)
func forEach(withLooping fn: (Element) -> Void) {
var stack = [self]
while !stack.isEmpty {
let current = stack.popLast()
switch current {
case
我正在学习Swift,我正在尝试将少量的JavaScript代码转换为Swift。JavaScript代码使用Regex拆分字符串,如下所示:
var text = "blah.clah##something_else";
var parts = text.match(/(^.*?)\#\#(.+$)/);
执行之后,parts数组将包含以下内容:
["blah.clah##something_else", "blah.clah", "something_else"]
我想在Swift中复制同样的行为。下面是我编写的Swift代码
我想做这样的事
var name = "Thiago Valente"
switch name {
case .contains("Valente"):
return "Hello, My surname is like your"
default:
return "Hi ;)"
}
contains不存在,所以可以使用开关情况吗?(我知道这很简单,如果-否则)
如何在Swift中为交换机机箱创建noop块?Swift强制您在case下至少有一条可执行语句,包括default语句。我试着放一个空的{},但Swift不接受。这意味着Swift的switch case不能完全在if-else和if-else之间转换,因为在if-else中,您可以在条件中包含空代码。
例如:
switch meat {
case "pork":
print("pork is good")
case "poulet":
print("poulet is not bad")
我创建了一个使用Swift.Result从URLSession返回图像和错误的方法。我还为错误创建了一个Enum。
当返回Swift.Result错误时,如何区分4个枚举之间的区别?
fetchImage(with: url) { (result) in
switch result {
case .failure(let err):
print(err)
// how can I determine which of the 4 enum errors was returned?
/* Example
if
这是我的代码:
enum GameScreen
{
case kSceneFlashScreen
case kSceneMainMenu
case kSceneGameScreen
case kSceneStoreScreen
case kSceneGameOver
}
class YSGameManager: NSObject {
func replaceGameScene(inScreen: GameScreen)
{
switch inScreen
{
case GameS
我正在编写的Java程序的一部分会询问用户的祖国。另一部分使用switch语句,我得到了一个错误。错误是:The operator || is undefined for the argument type(s) java.lang.String, java.lang.String。下面是出现问题的方法:
public static String getCountryMessage(String countryName) {
switch (countryName) {
case "USA":
return "Hello, ";
我有一个具有关联值的Result枚举:
enum Result {
case success(object: AnyObject)
case failure(errorMessage: String)
case reauthenticate(errorMessage: String)
}
我想以相同的方式处理failure和reauthenticate的情况,但也需要访问相关的值。Swift中是否有一种语言特性可以让我在不丢失failure的情况下通过它的errorMessage?类似于:
switch result {
case .success(_):
与许多语言不同,Swift的switch必须是详尽的,所以如果我有:
enum Enumeration
{
case A
case B
}
则此代码无效:
switch enumeration
{
case .A:
break
}
然而,这些规定是有效的:
switch enumeration
{
case .A:
break
case .B:
break
}
switch enumeration
{
case .A:
break
default:
break
}
如果我稍后将case C添加到Enumeration中,那么第一个有效的
我需要实现一个算法,通过计算字符串的模数来检查输入是否有效。
Kotlin的密码:
private val facteurs = arrayOf(7, 3, 1)
private fun modulo(s: String): Int {
var result = 0
var i = -1
var idx = 0
for (c in s.toUpperCase()) {
val value:Int
if (c == '<') {
value = 0
} else if
我正在努力为下面的问题构建一个正则表达式。
示例文本:
startABC)kasldstartXYZ,kjlksdstartMNO]aksdjfakstartDEF

startXYZ)kasldstartABC,kjlksdstartPQR]aksdjfakstartEFG

输出:
ABC,XYZ,MNO,DEF,XYZ,ABC,PQR,EFG
开始字:
"start"
结束语:
"," or ")" or "=" or "
" or "]" or
我在sqlite查询中有一个问题,我想使用"like“进行搜索,但是Xcode显示了这个错误。
“对成员‘like(_:escape:)’的模糊引用”
也许这样写有什么不对吗?但是我读了GitHub关于SQLite-Swift的文档。
GitHub中的示例是
users.filter(email.like("%@mac.com"))
// SELECT * FROM "users" WHERE ("email" LIKE '%@mac.com')
这是我的密码
import Foundation
import S
我正在做作业,以验证输入的字符串是否为所有小写字母。下面是我们提供的基本脚本。
这是我需要换的台词。
if [[ "$input" =~ Add your regular expression here ]]
如果我将[a-z]输入任何只有一个小写字母实例的内容,就会验证。使用[[:lower:]],"Brian“将验证,而”cat“将不会是胡言乱语,比如trhrh就行了。我不知道这里该用什么横梁。我非常感谢你的帮助。
在打印预览中,我正在尝试在所有页面的页脚中进行本地化分页。我这样设置我的分页:
var PageOfPages = "[Page # of Pages #]";
//On n'a pas vraiment le choix de faire ça pour que ça fonctionne dans les différentes langues... :
//http://www.devexpress.com/Support/Center/p/CQ48170.aspx
switch (CultureManager.GetInstance().TwoLetterISO