小编iri*_*ava的帖子

scala集合循环缓冲区

在这里搞乱,用循环缓冲区.这是一个明智的实施还是有更快/更可靠的方式来剥皮这只猫?

class CircularBuffer[T](size: Int)(implicit mf: Manifest[T]) {

    private val arr = new scala.collection.mutable.ArrayBuffer[T]()

    private var cursor = 0

    val monitor = new ReentrantReadWriteLock()

    def push(value: T) {
      monitor.writeLock().lock()
      try {
        arr(cursor) = value
        cursor += 1
        cursor %= size
      } finally {
        monitor.writeLock().unlock()
      }
    }

    def getAll: Array[T] = {
      monitor.readLock().lock()
      try {
        val copy = new Array[T](size)
        arr.copyToArray(copy)
        copy
      } finally {
        monitor.readLock().unlock()
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

scala circular-buffer reentrantreadwritelock

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

zsh文件名为globbling/substitution

我正在尝试创建我的第一个zsh完成脚本,在本例中为命令netcfg.

Lame听起来可能听起来我已经陷入了第一道障碍,免责声明,我知道如何粗暴地做到这一点,但是我寻求"ZSH WAY"来做到这一点.

我需要在/ etc/networking中列出文件,但只列出文件,而不是目录组件,所以我做了以下操作.

echo $(ls /etc/network.d/*(.))

/etc/network.d/ethernet-dhcp /etc/network.d/wireless-wpa-config
Run Code Online (Sandbox Code Playgroud)

我想要的是:

ethernet-dhcp wireless-wpa-config
Run Code Online (Sandbox Code Playgroud)

所以我试着(原谅我的天真):

echo ${(s/*\/)$(ls /etc/network.d/*(.))}

/etc/network.d/ethernet-dhcp /etc/network.d/wireless-wpa-config
Run Code Online (Sandbox Code Playgroud)

似乎这不起作用,我敢肯定必须有一些聪明的方法来做到这一点,分成一个数组并得到最后一部分,但正如我所说,我完全是noob在这.

任何建议都感激不尽.

zsh glob autocomplete

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