小编fat*_*oku的帖子

使用可变参数但使用命名参数调用函数的Scala语法是什么?

说我有一个功能

def f(a:Int = 0, b:String = "", c:Float=0.0, foos: Foo*) { ... }
Run Code Online (Sandbox Code Playgroud)

注意一些参数使用默认参数.通常,要使用默认值,可以使用命名参数调用函数,如下所示:

val foo = Foo("Foo!")
f(foos = foo)
Run Code Online (Sandbox Code Playgroud)

这种语法有效,因为我只用一个方法调用方法foo.但是,如果我有两个或更多

val foo1 = Foo("Foo!")
val foo2 = Foo("Bar!")
f(foos = ...)
Run Code Online (Sandbox Code Playgroud)

在这里应该喂什么不是那么明显.Seq(foo1,foo2)并且Seq(foo1,foo2):_*不要键入支票.

更重要的是,如何在没有 foo s的情况下调用它?

// All out of foos!
f(foos = ...)
Run Code Online (Sandbox Code Playgroud)

对于这种情况,使用空括号(f())调用该函数不起作用.

谢谢!

scala variadic-functions keyword-argument

6
推荐指数
2
解决办法
1547
查看次数

您可以捕获和检查提供给使用ScalaMock进行测试的方法的参数吗?

Java Mocking框架Mockito具有一个名为的实用程序类ArgumentCaptor,当多次调用正在验证的方法时,该类会累积值列表。

ScalaMock是否具有类似的机制?

scala mocking scalatest

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

如何将一个namedtuple应用于函数?

在Python中,如果你有一本字典

d = {'foo': 1, 'bar': False}
Run Code Online (Sandbox Code Playgroud)

您可以将此应用于接受foobar关键字参数的函数

def func(foo, bar):
    # Do something complicated here
    pass

func(**d)
Run Code Online (Sandbox Code Playgroud)

但如果相反,我想调用func下面定义的namedtuple:

from collections import namedtuple
Record = namedtuple('Record', 'foo bar')
r = Record(foo=1, bar=False)
func(r)   # !!! this will not work
Run Code Online (Sandbox Code Playgroud)

这是什么语法?

python function call namedtuple

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

如何使用Git设置特定于文件的默认合并策略?

这个问题不是特定于iOS的,但为了清楚起见,我在此处包含了实际用例

我运行一个名为iOS的项目Foobar,显然是在版本控制之下.在iOS项目环境中的项目文件中,有一个名为Foobar-Info.plistXML文件,它存储有关项目的有趣信息,例如版本和我所构建的构建数量.

每次我构建项目时,我都会将存储在此文件中的构建计数递增,如下所示:

...
<key>BuildCount</key>
<string>2203</string>
<key>CFBundleShortVersionString</key>
<string>0.0.4</string>
<key>CFBundleVersion</key>
<string>0.0.4-release/0.0.4.2203</string>
...
Run Code Online (Sandbox Code Playgroud)

其中'0.0.4-release'是git-flow分支名称,2203是内部版本号.这是在CFBundleVersion现场使用的,所以对我来说,构建来自哪里是非常明显的.

想象一下,在另一个分支中,自发布以来我已经取得了很多进展,并且相同的字段看起来像:

...
<key>BuildCount</key>
<string>2754</string>
<key>CFBundleShortVersionString</key>
<string>0.0.4</string>
<key>CFBundleVersion</key>
<string>0.0.4-feature/add-quux-and-baz.2754</string>
...
Run Code Online (Sandbox Code Playgroud)

假设我完成了发布,它已合并到主线develop分支中.

问题

为了获得发布分支中的最新更改,我想将功能分支重新绑定到develop.

当发生这种情况时,Foobar-Info.plist将在rebase进程中的每次提交时引发冲突.这是因为每次提交都会增加构建号; 我必须通过选择手动指定具有最新版本的行来手动合并.请注意,3向差异的基本版本也会有所不同.

<string>2000</string>  // Base
<string>2754</string>  // Local   ** always pick this one; it's the latest
<string>2203</string>  // Remote
Run Code Online (Sandbox Code Playgroud)

我怎么能告诉git对于一个特定的文件,Foobar-Info.plist我希望它通过最新的更改来解决我的冲突?

编辑:该文件必须保持在源代码管理下.我想保留BuildCount它,因为它是我项目中努力的一个很好的指示,我想保留它!我知道这个数字只表示完成的MINIMUM数量,但这对我来说已经足够了.

git merge git-merge branching-strategy

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

如何从终端启动AppCode?

我知道你可以通过以下方式快速启动PyCharm来处理特定的Python项目目录:

charm directory

在这种情况下,charm命令存在于/usr/local/bin.

但你可以做同样的AppCode,指向一个.xcodeproj.xcworkspace文件/?

terminal launching appcode

4
推荐指数
1
解决办法
544
查看次数

在Python中,是否存在模拟httplib响应的库?

我目前正在使用python_flickr_api为我的应用上传照片:它用于httplib执行多部分POST请求.

问题:我想通过拦截POST请求并创建预先成功的响应来验证上传是否真的是在集成测试中发出,这样我的测试就可以完全脱机运行而不依赖于Flickr(我不想上传相同的测试图像100次,或者!)

为此,我尝试使用两个令人难以置信的库:VCRPyHTTPretty.他们都没有解决我的问题,因为他们都不支持httplib(HTTPretty最接近,httplib2仅支持),我得到一个看起来像这样的错误:

 Failure/Error: [Errno 32] Broken pipe

 Traceback:
 ...
 File "/usr/local/lib/python2.7/site-packages/flickr_api/upload.py", line 92, in upload
     r = post(UPLOAD_URL,auth.AUTH_HANDLER,args,photo_file)
 File "/usr/local/lib/python2.7/site-packages/flickr_api/upload.py", line 52, in post
     r = multipart.posturl(url,fields,files)
 File "/usr/local/lib/python2.7/site-packages/flickr_api/multipart.py", line 19, in posturl
     return post_multipart(urlparts[1], urlparts[2], fields,files)
 File "/usr/local/lib/python2.7/site-packages/flickr_api/multipart.py", line 33, in post_multipart
     h.send(body)
 File "/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 805, in send
     self.sock.sendall(data)
 File "/usr/local/lib/python2.7/site-packages/httpretty/core.py", line 243, in sendall
     return self._true_sendall(data)
 File "/usr/local/lib/python2.7/site-packages/httpretty/core.py", line 216, in _true_sendall
     self.truesock.sendall(data, *args, …
Run Code Online (Sandbox Code Playgroud)

python mocking httplib fakeweb

3
推荐指数
1
解决办法
965
查看次数

为什么AppCode 3.0不让我选择最新的Xcode 6.0测试版的Base SDK = iOS 7.1?

我一直在构建和定位我的iOS 7.1应用程序.

随着最近AppCode升级到3.0,当我安装最新的Xcode 6.0-beta时,我注意到AppCode中发生了一些奇怪的事情.所有模拟器设备都设置为使用iOS 8.0,尽管我的项目设置在Xcode中没有这样说(值设置为iphoneos;这意味着Latest iOS SDK).

在此输入图像描述

我尝试在项目设置中配置Base SDK,但我没有做出很多选择:

在此输入图像描述

我该怎么做才能将它设置回iOS 7.1?

version ios appcode ios7.1 ios8

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

在 Swift 中,如何将 CGSize 转换为其字符串表示形式?

我知道在 Objective-C 中你可以将NSStringFromCGSize(size)a 转换CGSize成它的字符串表示形式,但是在 Swift 中它的等价物是什么?

swift

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

在React Native中,有没有办法在不使用Native Modules的情况下发送NSNotifications?

我正在寻找在Objective-C中编写简单UI处理程序代码的方法,这些代码不需要回调.

react-native

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