我正在测试从另一个目录导入.proto文件。
$ GOPATH / src / A / A.proto
syntax = "proto3";
package A;
message SomeMsg {
string msg = 2;
int64 id = 3;
}
Run Code Online (Sandbox Code Playgroud)
$ GOPATH / src / B / B.proto
syntax = "proto3";
package B; import "A/A.proto";
message Msg {
SomeMsg s = 1;
}
Run Code Online (Sandbox Code Playgroud)
我正在这样做:在文件夹A中:
protoc A.proto --go_out=.
Run Code Online (Sandbox Code Playgroud)
然后在文件夹B中:
protoc B.proto --go_out=. --proto_path=$GOPATH/
Run Code Online (Sandbox Code Playgroud)
但是我会得到这个错误:
B.proto:文件不位于使用--proto_path(或-I)指定的任何路径内。您必须指定包含此文件的--proto_path。请注意,proto_path必须是.proto文件名的精确前缀-protoc太笨拙,无法找出两个路径(例如绝对路径和相对路径)是否相等(这比您想象的要难得多)。
几天来,我尝试找到一个在列表视图内滚动的简单解决方案
由于 Appium Inspector 不提供列表的所有元素(仅通过手动滑动并刷新检查器,然后加载新实例的新元素。
经过研究,我发现列表项之间的距离如下:
Item Location= (15, 828)
Item Location= (15, 1209)
Item Location= (15, 1590)
Run Code Online (Sandbox Code Playgroud)
所以我猜每次点击都需要向下滚动 381 像素,经过这么多次尝试,我找不到这部分代码的解决方案,如果有人可以帮助解决这个问题,我会很高兴:
List<WebElement> list = driver.findElements(By.id("net.balink.diplomat.qa:id/btnAddToCart"));
System.out.println("List Size is= " + list.size());
for (int j = 0; j < list.size(); j++) {
WebElement listItem = list.get(j);
Point location = listItem.getLocation();
System.out.println("Location= " + location);
listItem.click();
//to do here: swipe 381 px down after any click, then re-initialize
//the listItem in order to get a new index - and the loop when …Run Code Online (Sandbox Code Playgroud) 这是我的KotlinRecyclerView适配器类
class ListAdapter(var c: Context, var lists: ArrayList<Employee>,
itemClickListener: Any?): RecyclerView.Adapter<RecyclerView.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): RecyclerView.ViewHolder {
var v = LayoutInflater.from(c).inflate(R.layout.list_layout, parent, false)
return Item(v)
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) {
(holder as Item).bindData(lists.get(position))
}
override fun getItemCount(): Int {
return lists.size;
}
class Item(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bindData(_list: Employee)
{
itemView.textViewfirstname.text = _list.firstName
itemView.textViewlastname.text = _list.lastName
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Kotlin活动代码
list.adapter = ListAdapter(this, getLists())
Run Code Online (Sandbox Code Playgroud) 我正在使用 materialize css datepicker 。我需要选择从 1950 年到 2005 年的 yearRange 但 yearRange 不起作用 yearRange 也使用以下代码显示未来年份的下拉列表
$(document).ready(function(){
$('.datepicker').datepicker(
{
format: 'dd-mm-yyyy',
maxDate: new Date(),
selectMonths: true,
changeMonth: true,
changeYear: true,
yearRange: 100,
});
Run Code Online (Sandbox Code Playgroud)
如果我在日期选择器年份下拉列表中将 yearRange 更改为负数(即 yearRange:-100)
对于作业,我必须编写一个函数
zipWith[A,B,C](f:Function2[A,B,C], l1:List[A], l2:List[B]) : List[C]
Run Code Online (Sandbox Code Playgroud)
这需要两个列表和一个函数,并返回另一个列表.例如:
zipWith((x: Int, y: Int) => x + y, List(1, 2, 3), List(4, 5, 6))
? List(5, 7, 9)
Run Code Online (Sandbox Code Playgroud)
所以我去了它并压缩l1和l2并尝试映射结果列表:
(l1 zip l2) map ((x:A, y:B) => f(x,y))
Run Code Online (Sandbox Code Playgroud)
给出"类型不匹配:找到:(A,B)=> C,必需:((A,B))=>?"
我研究了一下,找到了两个解决方案,但我不明白为什么这个有效:
(l1, l2).zipped map ((x:A, y:B)) => f(x,y))
Run Code Online (Sandbox Code Playgroud)
我检查了REPL:
l1 zip l2 => List[(A, B)]
Run Code Online (Sandbox Code Playgroud)
而
(l1, l2).zipped => scala.runtime.Tuple2Zipped[A,List[A],B,List[B]]
Run Code Online (Sandbox Code Playgroud)
在我看来,((A,B))看起来不像(A,B)?
有人可以解释一下吗?
另一个解决方案,
(l1 zip l2) map { case (x, y) => f(x, y) }
Run Code Online (Sandbox Code Playgroud)
涉及隐藏类型的模式匹配(或者我理解),我不应该用于分配.
通常在网页上创建表单时,我需要我们的客户填写一个字段,例如永久地址以及当前地址(选中复选框后,当前地址会自动填写)。我可以使用 JavaScript 将表单数据从一个字段复制到另一个字段,而不是让我们的客户填写两次表单。
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div>
<div class="well">
<b>Parmanent Address </b>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<div class="col-lg-12">
@Html.LabelFor(model => model.ParFirstAddr, htmlAttributes: new { @class = "control-label " })
@Html.EditorFor(model => model.ParFirstAddr, new { htmlAttributes = new {@class = "form-control", autocomplete = "off", @placeholder = "Enter Address" } })
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<div class="col-md-12">
@Html.LabelFor(model => model.ParFirstPO, htmlAttributes: new { @class = "control-label " })
@Html.EditorFor(model => model.ParFirstPO, new { htmlAttributes = …Run Code Online (Sandbox Code Playgroud) jquery ×2
appium ×1
datepicker ×1
dictionary ×1
go ×1
javascript ×1
kotlin ×1
list ×1
listview ×1
razor ×1
scala ×1
selenium ×1
zip ×1