我知道我可以在Swift中使用重复值创建一个数组:
var myArray = [Int](count: 5, repeatedValue: 0)
Run Code Online (Sandbox Code Playgroud)
但是有没有办法创建一个具有递增值的数组,例如[0, 1, 2, 3, 4]除了做一个循环之外
var myArray = [Int]()
for i in 0 ... 4 {
myArray.append(i)
}
Run Code Online (Sandbox Code Playgroud)
我知道代码非常简单,可读和防弹,但感觉我应该能够以某种方式将某些函数传递给数组,因为它是为了提供递增的值而创建的.它的可读性或计算效率可能不值得,但我很好奇.
这有效,但似乎效率低下:
switch var1 {
case 1:
string1 = "hello"
case 2:
string1 = "there"
default:
string1 = "world"
}
Run Code Online (Sandbox Code Playgroud)
但
string1 = switch var1 { ...
Run Code Online (Sandbox Code Playgroud)
抛出错误.是否有更有效的方法来编写开关/外壳,以便在每一行中没有冗余地列出分配的变量?
提前致谢!
我在使用Xcode 8.1和Swift 3编译时出现此错误:
Swift stdlib工具错误
编译日志的结尾如下所示:
/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftCore.dylib: replacing existing signature
/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftCore.dylib: CSSMERR_CSP_INVALID_CONTEXT_HANDLE
In architecture: x86_64
Probing signature of /Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftXPC.dylib
/usr/bin/codesign '-r-' '--display' '/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftXPC.dylib'
error: Task failed with exit 1 signal 0 {
/usr/bin/codesign '--force' '--sign' '-' '--verbose' '/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftCore.dylib'
}
Run Code Online (Sandbox Code Playgroud)
非常奇怪的是,如果我将带有项目的文件夹复制到我的桌面,它会编译没有错误.如果我将其复制到别处,则会出错.来回移动几次以验证,最后在第三次移动后,它也在桌面上出错.
有任何想法吗?
提前谢谢了.
如果在将类文件加载到类中的字符串时出现问题,我希望Swift中的类init()抛出错误.加载文件后,字符串不会被更改,所以我更喜欢使用let.这有效:
class FileClass {
var text: NSString = ""
init() throws {
do {
text = try NSString( contentsOfFile: "/Users/me/file.txt", encoding: NSUTF8StringEncoding ) }
catch let error as NSError {
text = ""
throw error
}
}
}
Run Code Online (Sandbox Code Playgroud)
但当我更换
var text: NSString = ""
Run Code Online (Sandbox Code Playgroud)
同
let text: NSString
Run Code Online (Sandbox Code Playgroud)
我得到一个类实例的所有存储属性必须在从初始化器错误抛出之前初始化.
我尝试了各种方法,例如使文本可选
let text: NSString?
Run Code Online (Sandbox Code Playgroud)
但没有找到任何工作.它可以从文件加载文本,不可变,并为init()抛出错误?我可以吃蛋糕吗?
提前谢谢了!
如果这在其他地方很容易找到,我深表歉意,但尽管我发现了许多带有 pyenv 和 Anaconda 解释的帖子,但没有一个专门解决这个问题。然而,我经常是个白痴。
在 Mac OSX (Mojave 10.14.6) 上,我通过 Homebrew 安装了 pyenv
brew install pyenv
我很高兴地安装并在 Python 版本之间切换
pyenv install ...
和
pyenv global ...
我通常使用 VS Code 作为我的 IDE。
我现在需要在 Anaconda 中做一些工作。我以前没用过。我可以简单地通过分发站点安装 Anaconda并使用它的导航器,当我需要我的旧 python 版本时使用 pyenv 和 VS Code,或者当我安装 Anaconda 时会发生冲突吗?如果会发生冲突,是否有在 OSX 上运行两者的路径?
当然,我可以安装它并查看会发生什么,如果出现大问题,可以从备份中恢复。但我希望 pyenv / Anaconda 大师可能有一些明智的建议,这可能会为我节省数小时的清理时间。
提前致谢!
我想运行一些python代码并与nodejs express服务器通信.到目前为止,我可以让我的nodejs服务器通过两种机制之一来调用python函数,要么生成python任务,要么让它与zerorpc python服务器通信.
第一个是http://www.sohamkamani.com/blog/2015/08/21/python-nodejs-comm/,这有效:
var express = require( "express" );
var http = require( "http" );
var app = express();
var server = http.createServer( app ).listen( 3000 );
var io = require( "socket.io" )( server );
app.use( express.static( "./public" ) );
io.on( "connection", function( socket ) {
// Repeat interval is in milliseconds
setInterval( function() {
var spawn = require( 'child_process' ).spawn,
py = spawn( 'python', [ 'mytime.py' ] ),
message = '';
py.stdout.on( 'data', function( data ) …Run Code Online (Sandbox Code Playgroud) 我想在Swift中扩展Array,以返回每个数组或列中的单个元素,用于2D数组.到目前为止,我有:
extension Array where // what goes here?
func getColumn( column: Int ) -> [ Int ] {
return self.map { $0[ column ] }
}
}
Run Code Online (Sandbox Code Playgroud)
我相信我需要以某种方式指定一个2D数组where,但我一直无法弄清楚这样做的正确方法.
在where?之后指定2D数组的正确语法是什么?
我也很好奇是否有一个很好的文档,说明如何指定where延长生命中可用的内容.我在Apple的Swift扩展文档中找不到它
提前致谢.
我有这样的代码:
enum enumThingType {
case apples
case oranges
case starfruit
}
func myFunc( enumThing: enumThingType ) -> String {
switch enumThing {
case .apples:
return "Hey, apples"
case .oranges:
return "Hey, oranges"
default:
return ""
}
}
Run Code Online (Sandbox Code Playgroud)
我正在非常缓慢地为所有情况填写代码,并且在我为杨桃及其同类代码编写代码时,我需要代码具有功能性。
一切都很好,但是编译器发出警告,永远不会为return "". 它很高兴地生成了一个可执行文件,但我是强制性的,希望警告和错误消失。
如果我删除该行return "",那么我会在预期返回 'String' 的函数中得到非常真实的编译器捕获Missing 返回。
同样,如果我只是删除default:...,我会得到同样引人注目的错误Switch must be experimental,考虑添加一个 default clause,这是完全可以理解的,但我在努力阻止警告和错误方面很有创意。
因此,鉴于此构造,我是否可以消除警告和错误,同时仍然为 的现有案例编码myFunc?
编辑
正如@appzYourLife 指出的那样,我在示例代码中省略了导致错误的预编译器指令。此代码带有预编译器指令,会引发警告:
enum enumThingType {
case apples …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习如何在Swift中为OSX(而不是 iOS)进行文本到语音转换.我有一个带代码的游乐场:
import Cocoa
let synth = NSSpeechSynthesizer()
synth.startSpeaking( "Hello World" )
Run Code Online (Sandbox Code Playgroud)
这似乎运行,但没有声音发生.在Xcode中,左下角有一个小蓝色三角形,我认为它可能会做一些事情,但遗憾的是没有:
任何想法如何在Swift游乐场中为OSX转换文本到语音?提前致谢!
我已经能够过滤包含数字的Pandas数据框行:
import pandas as pd
df = pd.DataFrame({'c1': [3, 1, 2], 'c2': [3, 3, 3], 'c3': [2, 5, None], 'c4': [1, 2, 3]})
c1 c2 c3 c4
0 3 3 2.0 1
1 1 3 5.0 2
2 2 3 NaN 3
df1 = df[(df.values == 1)]
c1 c2 c3 c4
0 3 3 2.0 1
1 1 3 5.0 2
Run Code Online (Sandbox Code Playgroud)
但是,如果尝试基于排除数进行过滤,则重复行会得到一个非常奇怪的结果:
df1 = df[(df.values != 1)]
c1 c2 c3 c4
0 3 3 2.0 1
0 3 3 2.0 …Run Code Online (Sandbox Code Playgroud)