Pandoc 支持Markdown 文档中的YAML 元数据块。这可以设置标题和作者等。它还可以通过更改字体大小、边距宽度和为包含的图形指定的框架大小来操作 PDF 输出的外观。这里提供了很多细节。
我想使用元数据块来记住我应该使用的命令行参数,例如--toc
和--number-sections
。我试过了,将以下内容添加到我的降价顶部:
---
title: My Title
toc: yes
number-sections: yes
---
Run Code Online (Sandbox Code Playgroud)
然后我使用命令行:
pandoc -o guide.pdf articheck_guide.md
Run Code Online (Sandbox Code Playgroud)
这确实产生了一个目录,但没有给章节编号。我想知道这是为什么,如果有办法可以从文档中指定这种东西,这样我就不需要在命令行中添加它。
如果我在Objective-C中执行以下操作:
NSString *result = [NSString stringWithFormat:@"%1.1f", -0.01];
Run Code Online (Sandbox Code Playgroud)
它会给出结果 @"-0.0"
@"0.0"
在这种情况下,有人知道如何强制结果(没有" - ")吗?
编辑:我尝试使用NSNumberFormatter,但它有同样的问题.以下还产生@"-0.0"
:
double value = -0.01;
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:1];
[numberFormatter setMinimumFractionDigits:1];
NSString *result = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:value]];
Run Code Online (Sandbox Code Playgroud) NSDateFormatter对生成相关日期有很好的支持,例如"今天","明天","昨天",这些都是当前语言支持的.一个很大的优点是所有这些都已经为您本地化 - 您不需要翻译字符串.
您可以使用以下命令打开此功能:
[dateFormatter setDoesRelativeDateFormatting: YES];
Run Code Online (Sandbox Code Playgroud)
不利的一面是,这似乎只适用于使用其中一种预定义格式的实例,例如:
[dateFormatter setDateStyle: NSDateFormatterShortStyle];
Run Code Online (Sandbox Code Playgroud)
如果您设置日期格式化程序以使用自定义格式,如下所示:
[dateFormatter setDateStyle: @"EEEE"];
Run Code Online (Sandbox Code Playgroud)
然后当你打电话:
[dateFormatter stringFromDate: date];
Run Code Online (Sandbox Code Playgroud)
......你会回来一个空字符串.
我希望能够在可能的情况下获得相关字符串,并在不支持时使用我自己的自定义格式.
这是我正在尝试做的事情:
extension Array<Optional<T>> {
func unwrap() -> Optional<Array<T>> {
let a = self.flatMap() { a in
switch a {
case Optional.Some(let x): return [x]
case Optional.None: return []
}
}
if a.count == self.count {
return Optional.Some(a)
} else {
return Optional.None
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,它没有编译错误Use of undeclared type T
.这是我想要使用它的方式:
let a = [Optional.Some(2), Optional.Some(3), Optional.Some(4)]
let b = [Optional.Some(1), Optional.None]
a.unwrap() // Optional[2, 3, 4]
b.unwrap() // nil
Run Code Online (Sandbox Code Playgroud)
我怎么能解决这个问题呢?或者快速没有这种可能性?
我正在扩展struct
一致Hashable
.我将使用DJB2哈希合并器来完成此任务.
为了便于为其他事情编写哈希函数,我想扩展Hashable
协议,以便我的哈希函数可以像这样编写:
extension MyStruct: Hashable {
public var hashValue: Int {
return property1.combineHash(with: property2).combineHash(with: property3)
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将扩展名编写为Hashable
`combineHash(with :)时,就像这样:
extension Hashable {
func combineHash(with hashableOther:Hashable) -> Int {
let ownHash = self.hashValue
let otherHash = hashableOther.hashValue
return (ownHash << 5) &+ ownHash &+ otherHash
}
}
Run Code Online (Sandbox Code Playgroud)
...然后我得到这个编译错误:
/Users/benjohn/Code/Nice/nice/nice/CombineHash.swift:12:43:协议'Hashable'只能用作通用约束,因为它具有Self或相关类型要求
这是Swift不会让我做的事情,还是我只是做错了并得到一个无用的错误信息?
除了来自JAL的评论链接到一个快速哈希函数的代码审查,这也是马丁写的,它提供了下面接受的答案!他在讨论中提到了一个不同的哈希合并器,它基于c ++ boost库中的一个.讨论确实值得一读.替代组合器具有较少的冲突(在测试的数据上).
鉴于我在Swift中有一个数组[1,2,3,4]
,一个方法pairs()
会将其转换为元组数组:[(1,2), (2,3), (3,4)]
.
以下是一些pairs()
应该如何表现的例子:
pairs([])
应该返回,[]
因为它没有对.pairs([1])
也应该返回[]
,因为它没有对.pairs([1,2])
应该是[(1,2)]
.它只有一对.我可以编写代码来执行此操作Array
,但我希望pairs()
可以作为扩展Sequence
,以便它返回一Sequence
对.这将使得它可用在任何序列,并与方法,如兼容map
,reduce
,filter
,等.
我如何创建Sequence
这样的?我如何编写方法以Sequence
这种方式转换任何方法,以便尽可能灵活地使用它?
我有一个Swift数组Result
,像这样:
let tuple: [Result<Term, TermError>] = /* code here */
Run Code Online (Sandbox Code Playgroud)
我想把它里面翻过来,把结果拉出来给一个结果,把数组推到里面。
let tuple2: Result<[Term], TermError> = /* How? */
Run Code Online (Sandbox Code Playgroud)
tuple2
应该是.failure
,如果任何的tuple
是.failure
。否则是.success([tuple-elements-in-here])
。
我想我可以提出一些可以使这项工作奏效的方法,但是我觉得应该有一种相当干净的方法来实现这一目标?
我需要一个分页UIScrollView
来检测屏幕边缘的平移方式UIScreenEdgePanGestureRecognizer
,而不是检测到各处的平移UIPanGestureRecognizer
.
我可以从中获取[scrollView panGestureRecogniser]
实例scrollView
,但我无法将其替换为实例UIScreenEdgePanGestureRecognizer
.
它也不可能改变[[scrollView panGestureRecogniser] delegate]
为我控制下的一个可以停止滚动手势的对象,除非它们从边缘开始,因为UIScrollView
不会让你改变它的UIGestureReconiser
代表.
我很难弄清楚如何通过约束来获得我想要的结果.我可以通过编程方式执行此操作,但似乎应该有更好的方法.
基本上我有一个键盘.
最左边的键(Q)和最右边的键(P)应该是从左侧和右侧的3个点.
Q键和P键之间的8个键应在Q和P键之间等间隔
键应该在宽度上拉伸以填充Q和P键之间的整个空间宽度,同时仍然保持彼此之间的相等空间.
基本上键盘应该像Apple的原生键盘在横向旋转时那样做.
这可以通过约束来完成,还是我需要在没有约束的情况下以编程方式执行此操作?
我需要在 Swift 中找到整数的最高有效位 (MSB)的值(或位置) 。
例如:
1<<3 == 1000
)许多处理器(Intel、AMD、ARM)都有这方面的说明。在c中,这些是暴露的。这些指令是否可以通过库函数在 Swift 中类似地使用,或者我是否需要实现一些操作?
该值对我来说更有用。
如果返回位置,则可以通过单次移位轻松导出该值。
相反,除非有快速的汉明权重/弹出计数功能,否则从值计算位置并不那么容易。
swift ×5
generics ×2
ios ×2
objective-c ×2
arrays ×1
autolayout ×1
cocoa-touch ×1
hash ×1
ios8 ×1
markdown ×1
nscalendar ×1
nsdate ×1
nsnumber ×1
nsstring ×1
optional ×1
pandoc ×1
sequence ×1
swift2 ×1
uikit ×1
uiscrollview ×1
yaml ×1
zero ×1