我正在研究两个不同的分支:发布和开发.
我注意到我仍然需要将一些提交给发布分支的更改集成到开发分支中.
问题是我不需要所有的提交,只有某些文件中的一些人,所以很简单
git cherry-pick bc66559
Run Code Online (Sandbox Code Playgroud)
没有办法.
当我做的时候
git show bc66559
Run Code Online (Sandbox Code Playgroud)
我可以看到差异,但实际上并不知道将其部分应用于我当前工作树的好方法.
现在已经有一段时间RWH问世了(差不多3年).在网上逐渐写完这本书后,我急切希望得到我的副本(我认为,这是写一本书的最好方法之一.)在所有相当学术论文中,哈克尔学生的读书真是太有意义了经常遇到!
在一些旅行中它是一个坚固的伴侣,我会经常回顾它.尽管如此,我的副本开始变得非常糟糕,尽管大部分内容仍然有效,但在haskell世界中有大量新主题值得以类似方式进行报道.
考虑到RWH已经(现在仍然如此)的影响,我真诚地希望有一天会有续集:)一些续集的主题会立即出现在我的脑海中:
haskell社区需要RWH风格解释的主题是什么?
这是迄今为止的建议摘要:
概念
技术
工具
图书馆
我发现自己在haskell中做了越来越多的脚本.但在某些情况下,我真的不确定如何"正确"地做到这一点.
例如,递归地复制目录(la unix cp -r
).
由于我主要使用Linux和Mac Os,我通常作弊:
import System.Cmd
import System.Exit
copyDir :: FilePath -> FilePath -> IO ExitCode
copyDir src dest = system $ "cp -r " ++ src ++ " " ++ dest
Run Code Online (Sandbox Code Playgroud)
但是,以独立于平台的方式复制目录的推荐方法是什么?
我没有找到任何适合hackage的东西.
这是我到目前为止使用的相当天真的实现:
import System.Directory
import System.FilePath((</>))
import Control.Applicative((<$>))
import Control.Exception(throw)
import Control.Monad(when,forM_)
copyDir :: FilePath -> FilePath -> IO ()
copyDir src dst = do
whenM (not <$> doesDirectoryExist src) $
throw (userError "source does not exist")
whenM (doesFileOrDirectoryExist dst) $
throw (userError …
Run Code Online (Sandbox Code Playgroud) 正如别处指出多次(例如,1,2,...)在Haskell脚本可以说是相当强大的.
快速方法也可以是ghc表达式评估模式.这就是我实际上发现自己越来越多地使用(我真的很喜欢ruby中的这个功能).
一个小例子任务:
"找出包含HEAD和特定修订版之间的git差异的所有文件夹"
git diff --stat 9e2b68 | ghc -e \
"getContents >>= return.(Data.List.nub).map(fst.break('/'==).head.words).lines"
Run Code Online (Sandbox Code Playgroud)
这看起来有点笨重,可能是因为我真的不知道使用的细节ghc -e
.
鉴于所有有趣的部分只是nub.map(fst.break('/'==).head.words).lines
实际的表达似乎有点罗嗦.
我真的很感激从其他用例中看到一些例子,这些例子将有助于我改进我对这些小脚本使用haskell的方式!
旁注:Commandline-foo向导可能会对此嗤之以鼻,但我觉得使用haskell然后使用bash脚本更加舒服,所以这就是我想要使用的内容.
使用Vim我真的是视觉模式的粉丝,它允许你在列之前插入文本.
在箭头后插入一些间距,
> one
> two
> three
Run Code Online (Sandbox Code Playgroud)
可以通过<Ctrl-V>jjI <Esc>
以下方式完成
> one
> two
> three
Run Code Online (Sandbox Code Playgroud)
<Ctrl-V>
,jj
,I__
,<Esc>
现在我有一个需要格式化的文本文件.这就是它的样子:
start() -- xxx
initialize() -- xxx
go() -- xxx
Run Code Online (Sandbox Code Playgroud)
现在我想对齐此部分文本,将其排列成如下列:
start() -- xxx
initialize() -- xxx
go() -- xxx
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不能在每行中插入不同数量的缩进,只是缩进固定数量的空格/制表符是不够的.如何在所有缩进文本必须在同一列对齐的情况下进行缩进?
编辑:我只想出一个相当冗长和笨拙的方法:
\--
,20i <Esc>
,d|15
,......但是非常难看!
在我的场景中,我在服务器上维护一个svn同步的git存储库.我组中的所有开发人员都使用此存储库来获取更新.在开发人员获取最新更改之前,
我找不到触发自动"git svn fetch"(或任何其他命令)的方法.
我目前的解决方法是让一个cron作业每5分钟同步一次svn相关的更改.是否有可能拥有这种预取钩子?
谢谢
有关于如何通过RN桥接器从RN javascript部分与android和ios中的本机部分进行通信的文档.什么是不清楚的是桥梁通信的生命周期.
(来源媒体)
我在android中有一个后台服务,需要将事件发送到我的RN应用程序.这是我从我的android发送事件的方式Service
:
private RCTDeviceEventEmitter emitter() {
return mReactContext.getJSModule(RCTDeviceEventEmitter.class);
}
private void pushPayload(String event, WritableMap payload) {
emitter().emit(event, payload);
}
public void sendTimerEvent(long remaining) {
WritableMap data = Arguments.createMap();
data.putInt("remaining", (int) remaining);
pushPayload("timeoutEvent", data);
}
Run Code Online (Sandbox Code Playgroud)
在javascript方面,我使用以下静态代码(不在组件中,只是导入到我的index.android.js
文件的代码:
const subscribeForNativeEvents = (eventID, callback) => {
const Emitter = Platform.OS === 'android' ? DeviceEventEmitter : NativeAppEventEmitter;
Emitter.addListener(eventID, callback);
};
subscribeForNativeEvents('timeoutEvent', (event) => {
// work with event.remaining
}); …
Run Code Online (Sandbox Code Playgroud) 对我来说,VIM的一个常用功能是通过外部命令过滤文件(或文本选择),并将选择替换为结果,例如:
:'<,>'!sort
Run Code Online (Sandbox Code Playgroud)
所以
c
b
a
Run Code Online (Sandbox Code Playgroud)
将被排序并将导致
a
b
c
Run Code Online (Sandbox Code Playgroud)
也可以用外部命令的返回值替换当前行,例如:
:,!ls | wc -l
Run Code Online (Sandbox Code Playgroud)
将插入当前目录中的文件数量(在我的情况下例如:)
41
Run Code Online (Sandbox Code Playgroud)
但有没有办法将字符串传递给shell的命令?例如,这可能是我的视觉选择的内容:
line_x
line_y
line_z
Run Code Online (Sandbox Code Playgroud)
我需要的是执行一些shell命令并将每个选定的行作为一个shell脚本参数,例如:
my_bash_command line_x -c -e -f
my_bash_command line_y -c -e -f
my_bash_command line_z -c -e -f
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?
我正在使用flow来注释我的代码中的类型.
type Bar = 'One' | 'Two';
function foo(b: Bar) : boolean {
return b === 'Three';
}
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以教导flow
报告警告或错误以与不匹配类型进行比较(string
在我的情况下)?
编辑:所以似乎无法使用枚举.但是,由于这实际上是我遇到的错误,我想表达这一点,以便流程将帮助我标记这种情况.
有什么想法吗?
将状态传递给小部件很容易。我有一个StatefulWidget
包含动画及其控制器的动画。我需要能够从小部件树中更高的另一个小部件触发动画。
我MainApp
应该使用按钮触发动画。
据我了解,AnimationController
只有一个命令式 API。我可以打电话controller.forward()
或controller.reverse()
. 但要做到这一点,我需要将控制器公开给我的 MainApp。
我目前所做的就是保留我的状态的全局变量。
class MainApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
...
body: new LogoWidget(),
);
}
_startAnimation() {
_state.restartAnimation();
}
}
_LogoWidgetState _state; // yuk!
class LogoWidget extends StatefulWidget {
_LogoWidgetState createState() {
_state = _LogoWidgetState();
return _state;
}
}
class _LogoWidgetState extends State<LogoWidget>
with SingleTickerProviderStateMixin {
Animation<double> animation;
AnimationController controller;
restartAnimation() {
controller.value == 1.0 ? controller.reverse() : controller.forward(); …
Run Code Online (Sandbox Code Playgroud) 在打字稿 2.6 中,我想编写一个执行空检查的函数。当我启用严格的空检查时,打字稿 2.6 会抱怨以下代码。(注意,当使用空检查时直接有效)
编辑:更正,notNullOrUndefined
因为它没有检查 foo
interface A {
foo: string | undefined;
}
const notNullOrUndefined = (a: A): boolean => {
return a.foo != null;
}
const len = (a: A): number => {
//if (a.foo != null) {
if (notNullOrUndefined(a)){
return a.foo.length;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是要玩的示例:示例
解决这个问题的打字稿方法是什么?
我正在使用流来监控我的Firestore后端的变化。这适用于更新,但我没有得到初始值。
class A {
final Stream<DocumentSnapshot> _visitorCount =
Firestore.instance.document('ServerData/serverStatus').snapshots();
Stream<int> get visitorCount {
return Observable(_visitorCount)
.map((DocumentSnapshot doc) => doc['activeUsers'] as int);
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用rxdart
'sstartWith
来提供一个初始值,但是读出这个值会导致 aFuture<int>
并且我需要提供一个int
to startWith
。
static Future<int> f = Firestore.instance
.collection('ServerData')
.document('serverStatus')
.get()
.then((doc) => doc['activeUsers'] as int);
Run Code Online (Sandbox Code Playgroud)
在路上,我像这样使用它:
StreamBuilder(
stream: _visitorCount,
initialData: 0,
builder: (context, snapshot) =>
Text('${snapshot.data} users logged in') ...
Run Code Online (Sandbox Code Playgroud)
我提供0
初始值,但这当然只是一个临时值。我相信这很明显,但我仍然很难做到正确。解决这个问题的最佳方法是什么?
git ×3
haskell ×3
javascript ×3
dart ×2
flutter ×2
scripting ×2
vim ×2
android ×1
animation ×1
flowtype ×1
formatting ×1
java ×1
lifecycle ×1
react-native ×1
shell ×1
text ×1
types ×1
typescript ×1