GLPK:访问具有可变长度的数据数组

时间:2017-07-20 21:45:25

标签: glpk

set ORIG;
set DEST;
set LINKS within {ORIG,DEST};

printf {i in ORIG, j in DEST} "LINKS[%s,%s] = %g \n",i,j,LINKS[i][j];

data;

set ORIG := GARY CLEV PITT;
set DEST := FRA DET LAN WIN STL FRE LAF;

set LINKS := 
   (GARY,*) DET LAN STL LAF
   (CLEV,*) FRA DET LAN WIN STL LAF
   (PITT,*) FRA WIN STL FRE;

end;

这会停止并显示以下错误消息:

  

LINKS无法下标

如何定义LINKS以便可以使用LINKS[i][j]访问它?

1 个答案:

答案 0 :(得分:0)

根据gnu-help的一些建议,这似乎是一个更好的语法 对于这个问题:

service cloud.firestore {
  match /databases/{database}/documents {
    function maybeString(val) {
      return val == null || val is string
    }

    match /myCollection/{document} {
      function mySchema() {
        return request.resource.data.name is string
          && maybeString(request.resource.data.optionalProp);
      }

      allow read: if request.auth != null;
      allow create, update: if mySchema();
    }
  }
}


service cloud.firestore {
  match /databases/{database}/documents {
    match /myCollection/{document} {
      function mySchema() {
        return request.resource.data.keys().hasAll(['name'])
          && request.resource.data.name is string
          && request.resource.data.optionalProp is string;
      }

      allow read: if request.auth != null;
      allow create, update: if mySchema();
    }
  }
}