小编Dri*_*ler的帖子

如何在Swift中创建一个递增值的数组?

我知道我可以在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)

我知道代码非常简单,可读和防弹,但感觉我应该能够以某种方式将某些函数传递给数组,因为它是为了提供递增的值而创建的.它的可读性或计算效率可能不值得,但我很好奇.

swift

56
推荐指数
1
解决办法
2万
查看次数

如何在Swift案例语句中分配变量

这有效,但似乎效率低下:

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)

抛出错误.是否有更有效的方法来编写开关/外壳,以便在每一行中没有冗余地列出分配的变量?

提前致谢!

swift

28
推荐指数
3
解决办法
9164
查看次数

Swift stdlib工具错误

我在使用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)

非常奇怪的是,如果我将带有项目的文件夹复制到我的桌面,它会编译没有错误.如果我将其复制到别处,则会出错.来回移动几次以验证,最后在第三次移动后,它也在桌面上出错.

有任何想法吗?

提前谢谢了.

xcode swift xcode8.1

21
推荐指数
4
解决办法
2万
查看次数

我可以从Swift中的类init()抛出从文件加载的常量字符串吗?

如果在将类文件加载到类中的字符串时出现问题,我希望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()抛出错误?我可以吃蛋糕吗?

提前谢谢了!

swift

20
推荐指数
2
解决办法
1万
查看次数

除了 OSX 上现有的 pyenv 安装之外,如何安装 Anaconda?

如果这在其他地方很容易找到,我深表歉意,但尽管我发现了许多带有 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 macos homebrew anaconda pyenv

15
推荐指数
2
解决办法
3948
查看次数

如何在运行python代码和nodejs之间进行通信

我想运行一些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)

python ipc node.js express

13
推荐指数
2
解决办法
1万
查看次数

从2D数组中获取列 - 如何在扩展中限制数组类型?

我想在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扩展文档中找不到它

提前致谢.

arrays swift

6
推荐指数
1
解决办法
1298
查看次数

Xcode 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)

xcode swift

5
推荐指数
1
解决办法
9135
查看次数

如何在Swift playground中为OSX转换文本到语音

我正在尝试学习如何在Swift中为OSX(而不是 iOS)进行文本到语音转换.我有一个带代码的游乐场:

import Cocoa

let synth = NSSpeechSynthesizer()
synth.startSpeaking( "Hello World" )
Run Code Online (Sandbox Code Playgroud)

这似乎运行,但没有声音发生.在Xcode中,左下角有一个小蓝色三角形,我认为它可能会做一些事情,但遗憾的是没有:

Xcode界面的图片与左下角的蓝色三角形

任何想法如何在Swift游乐场中为OSX转换文本到语音?提前致谢!

macos xcode swift

5
推荐指数
1
解决办法
681
查看次数

如果值不等于数字,如何从Pandas数据框中选择行?

我已经能够过滤包含数字的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)

python pandas

4
推荐指数
2
解决办法
68
查看次数

标签 统计

swift ×7

python ×3

xcode ×3

macos ×2

anaconda ×1

arrays ×1

express ×1

homebrew ×1

ipc ×1

node.js ×1

pandas ×1

pyenv ×1

xcode8.1 ×1