小编Lyn*_*ynn的帖子

将timedelta转换为总秒数

我有时差

time1 = datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))
...
time2 = datetime.datetime.fromtimestamp(time.mktime(time.gmtime()))
diff = time2 - time1
Run Code Online (Sandbox Code Playgroud)

现在,我如何找到通过的总秒数?diff.seconds不计算天数.我可以:

diff.seconds + diff.days * 24 * 3600
Run Code Online (Sandbox Code Playgroud)

有没有内置的方法?

python datetime

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

(为什么)移动构造函数或移动赋值运算符应该清除它的参数?

从我正在采用的C++课程中移动构造函数实现看起来有点像这样:

/// Move constructor
Motorcycle::Motorcycle(Motorcycle&& ori)
    : m_wheels(std::move(ori.m_wheels)),
      m_speed(ori.m_speed),
      m_direction(ori.m_direction)
{
    ori.m_wheels = array<Wheel, 2>();
    ori.m_speed      = 0.0;
    ori.m_direction  = 0.0;
}
Run Code Online (Sandbox Code Playgroud)

(m_wheels是类型的成员std::array<Wheel, 2>,并且只包含一个double m_speed和一个bool m_rotating在所述摩托车类,m_speed并且m_directiondouble峰)

我不太明白为什么ori需要清除价值.

如果a Motorcycle有任何指针成员我们想"偷",那么肯定,我们必须设置ori.m_thingy = nullptr为不要,例如,delete m_thingy两次.但是当字段包含对象本身时,这是否重要?

我向朋友询问了这个问题,他们指着我这个页面说:

移动构造函数通常会"窃取"参数所持有的资源(例如,指向动态分配的对象,文件描述符,TCP套接字,I/O流,运行线程等),而不是复制它们,并保留参数一些有效但不确定的国家.例如,从a std::string或a 移动std::vector可能会导致参数保持为空.但是,不应依赖此行为.

谁定义了不确定状态的含义?我看不出如何设定的速度0.0是任何更多的不确定比离开它是.就像报价中的最后一句所说 - 代码不应该依赖于移动摩托车的状态,所以为什么还要打扰它?

c++ move-constructor c++11

35
推荐指数
3
解决办法
2655
查看次数

如何在OSX 10.7上打包ruby shoes应用程序

我一直在使用Ruby Shoes制作应用程序.我很高兴它结果如何,并希望与一些朋友分享.但是,GUI打包程序在OSX中不起作用,Windows打包程序似乎只生成一个.shy文件.我一直在四处寻找解决方案,我不明白其中任何一个.有人可以清楚地解释如何打包Ruby Shoes应用程序来说出DMG或EXE文件吗?

ruby macos shoes dmg package

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

Rust中的.. =(点点等于)运算符是什么?

..=在一些Rust代码中看到了这个运算符:

for s in 2..=9 {
    // some code here
}
Run Code Online (Sandbox Code Playgroud)

它是什么?

syntax operators rust

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

如何显示Haskell类型只由一个函数居住?

这个答案中,加布里埃尔冈萨雷斯展示了如何证明这id是唯一的居民forall a. a -> a.为了做到这一点(在最正式的证明迭代中),他表明该类型与()使用Yoneda引理同构,并且由于()其中只有一个值,所以必须使用类型id.总结一下,他的证据是这样的:

Yoneda说:

Functor f => (forall b . (a -> b) -> f b) ~ f a
Run Code Online (Sandbox Code Playgroud)

如果a = ()f = Identity,这变为:

(forall b. (() -> b) -> b) ~ ()
Run Code Online (Sandbox Code Playgroud)

而且从简单来说() -> b ~ b,LHS基本上就是这种类型id.

这感觉就像一个适合的"魔术" id.我正在尝试为更复杂的函数类型做同样的事情:

(b -> a) -> (a -> b -> c) -> b -> c
Run Code Online (Sandbox Code Playgroud)

但我不知道从哪里开始.我知道它有人居住\f …

haskell type-theory category-theory

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

为什么为负参数定义`take`和`drop`?

前奏显示例子takedrop负参数:

take (-1) [1,2] == []
drop (-1) [1,2] == [1,2]
Run Code Online (Sandbox Code Playgroud)

为什么这些定义的方式是,例如x !! (-1)"更安全"的事情和崩溃?即使在论证没有意义的情况下,这似乎是一种使用这些函数的hackish和非Haskell类似的方法.这背后是否有一些我没有看到的更大的设计理念?这种行为是否由标准保证,或者这就是GHC决定如何实施它?

haskell

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

在SharpShell上下文菜单中选择要重命名的文件

我正在使用SharpShell编写一个小的新shell上下文菜单项,将当前选定的文件复制到新的子文件夹,然后提示用户输入目录的新名称.

搜索StackOverflow,我找到了这个答案.但是,我想在SharpShell中做同样的事情.

我会以某种方式对它进行射击SVSI_EDIT,我可以深深地找到它,SharpShell.Interop但我不确定这是如何工作的.我找不到任何文档或代码示例.

(编辑:我想找出如何Pidl从文件名中获取一个好的开始,但也许我根本不需要它?)

c# windows-shell sharpshell

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

我可以将此newtype实现为其他类型的组合吗?

我编写了一个Const3非常类似的newtype Const,但包含三个给定类型参数中的第一个:

newtype Const3 a b c = Const3 { getConst3 :: a }
Run Code Online (Sandbox Code Playgroud)

我可以为这个新类型定义很多有用的实例,但我必须自己完成所有这些.

但是,我在类型级别上应用的功能类似于该功能

\a b c -> a
Run Code Online (Sandbox Code Playgroud)

@pl告诉我相当于const . const.

双方(.)const具有匹配的NEWTYPE包装:ComposeConst.所以我想我能够写:

type Const3 = Compose Const Const
Run Code Online (Sandbox Code Playgroud)

并自动继承有用的实例,例如:

instance Functor (Const m)
instance (Functor f, Functor g) => Functor (Compose f g)
-- a free Functor instance for Const3!
Run Code Online (Sandbox Code Playgroud)

但GHC不同意:

const3.hs:5:23:
    Expecting one more argument to ‘Const’
    The first argument of …
Run Code Online (Sandbox Code Playgroud)

haskell type-theory category-theory type-kinds polykinds

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

如何在`for ... in`中对union构造函数进行模式匹配

在Haskell中,如果我有一个联合类型值的列表,如下所示:

example :: [Either Int Char]
example = [Left 3, Right 'b', Left 6, Left 9, Right 'c']
Run Code Online (Sandbox Code Playgroud)

我可以使用一些"技巧"来提取匹配某些特定模式的所有结果:

lefts :: [Int]
lefts = [l | Left l <- example]
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试将其转换为F#,我会收到错误:

let lefts = [for Choice1Of2 l in example -> l]
                 ~~~~~~~~~~~~
Incomplete pattern matches on this expression. (...)
Run Code Online (Sandbox Code Playgroud)

这很有意义(甚至可能比默默地忽略RightHaskell之类的值更好!)但是在F#中,有一些方便的方法来提取(和匹配)匹配列表/序列中某个模式的所有值

f# pattern-matching discriminated-union

10
推荐指数
2
解决办法
400
查看次数

如何区分 Siri Remote 按钮按下和游戏手柄按钮按下?

pressesBegan(_ presses: Set<UIPress>, with event: UIPressesEvent?)在我的 ViewController 上写了一个覆盖。

  open override func pressesBegan(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
    #if os(tvOS)
    for press in presses {
      switch press.type {
      case .menu: print("menu"); break;
      case .select: print("select"); break;
      case .playPause: print("playPause"); break;
      default: break;
      }
    }
    #endif
  }
Run Code Online (Sandbox Code Playgroud)

当我按下 Siri Remote 上的“菜单”按钮时UIPress,它会正确地看到已press.type设置为.menu

但是,当我在已连接到 Apple TV 的 DualShock 4 游戏手柄上按“圆圈”( )时,它也会收到一个.menu新闻事件buttonB。这是正常的吗?它是记录在案的行为吗?(我认为这个想法是让应用程序“自动”使用游戏手柄进行导航。)

我并不总是希望“游戏手柄上的 B”和“遥控器上的菜单”做同样的事情。我如何区分这两种情况?既没有UIPressesEvent也没有UIPress似乎在他们的领域中携带任何关于哪个设备发起按键的信息。还有其他方法吗?

apple-tv gamepad swift tvos siri-remote

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