Ungereimtheit bei getDataArray

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Ungereimtheit bei getDataArray

Beitrag von balu »

Na'bend Liebe Gemeinde,

vielleicht eine ganz banale Frage.

Muss bei getDataArray das Klammerpaar dahinter gesetzt werden, oder nicht?
Also in der Form von

Code: Alles auswählen

x = oSheet.getCellRangeByName("A1:A10").getdataArray()
In manchen Codes ist das Klammerpaar gesetzt, und in manchen eben nicht.
Was haben sie zu bedeuten, welche Funktion haben sie?
Und was für Auswirkungen kann das Eurer Erfahrung her haben wenn nicht gesetzt ist?

Ich frage deshalb, weil ich mir unsicher bin, und es noch nicht so recht verstehe warum das mal so und mal so geschrieben wird.

Über antworten freu ich mich natürlich sehr.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Ungereimtheit bei getDataArray

Beitrag von DPunch »

Aloha
balu hat geschrieben:Muss bei getDataArray das Klammerpaar dahinter gesetzt werden, oder nicht?
Nein.
Das (leere) Klammerpaar bedeutet, dass eine (parameterlose) Methode aufgerufen wird.
Im Gegensatz zu einigen anderen Programmiersprachen ist diese Schreibweise bei OOo Basic allerdings nicht notwendig.
Ich denke, die Klammern werden von denen, die sie setzen, zum größten Teil entweder aus Gewohnheit gesetzt oder um nochmal zu unterstreichen, dass hier eine Methode aufgerufen wird.
Die zwei Schreibweisen

Code: Alles auswählen

x = oSheet.getCellRangeByName("A1:A10").getdataArray()
x = oSheet.getCellRangeByName("A1:A10").getdataArray
sind also in ihrem Effekt identisch.
Analog dazu kann man bei Methoden, die Parameter verlangen, auf die Klammern verzichten, ala

Code: Alles auswählen

oSheet.getCellRangeByName("A1:A10").setdataArray(x)
oSheet.getCellRangeByName("A1:A10").getdataArray x
Ich persönlich halte das Verzichten auf die Klammern im letzten Fall aber für unübersichtlich, weshalb ich sie dort immer verwende.
Bei parameterlosen Methodenaufrufen verzichte ich auf die Klammern.
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ungereimtheit bei getDataArray

Beitrag von balu »

Hallo DPunch,

also spielt es keine Rolle, und es kann auch nichts passieren wenn bei getDataArray nicht geklammert wird. Anders verhällt sich das dann bei setDataArray, da sollte (muss) dann nicht nur geklammert werden, sondern es müssen auch Parameter angegeben werden. Das habe ich auch bis jetzt überall so gesehen, und in meinen Makros auch so eingehalten.

Ich Danke dir für deine rasend schnelle Antwort :D.

Zwei kleine Fragen hätte ich da aber dennoch, auch wenn nicht mehr direkt dazu passend.
Gillt das auch für andere get... Anweisungen, oder ist das von Fall zu Fall unterschiedlich?
Oder besagt get... ist generell eine parameterlose Methode?

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Ungereimtheit bei getDataArray

Beitrag von komma4 »

DPunch hat geschrieben:um nochmal zu unterstreichen, dass hier eine Methode aufgerufen wird.
Aus diesem Grunde setze ich leere Klammern.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Ungereimtheit bei getDataArray

Beitrag von komma4 »

balu hat geschrieben:Oder besagt get... ist generell eine parameterlose Methode?
Nein, denke nur mal an die .getByName und .getByIndex Methoden... die brauchen den Namen bzw. Index
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Ungereimtheit bei getDataArray

Beitrag von DPunch »

Aloha
balu hat geschrieben:Anders verhällt sich das dann bei setDataArray, da sollte (muss) dann nicht nur geklammert werden, sondern es müssen auch Parameter angegeben werden.
Es *muss* wie gesagt nicht geklammert werden, das ist schlichtweg eine Sache der persönlichen Präferenzen.
Du kannst mit ziemlicher Sicherheit davon ausgehen, dass Du für .set*-Methoden auch einen Parameter angeben musst - schliesslich willst Du ja irgendwas auf irgendeinen "Wert" setzen, welcher "Wert" das ist, kannst nur Du wissen und entsprechend angeben.
balu hat geschrieben:Gillt das auch für andere get... Anweisungen, oder ist das von Fall zu Fall unterschiedlich?
Oder besagt get... ist generell eine parameterlose Methode?
Das ist immer eine Frage der Methodendefinition, lässt sich also nicht so pauschal sagen.
OOo Basic verhält sich dabei aber insofern konstant, als dass .get* immer dann keinen Parameter braucht, wenn eindeutig und ohne zusätzliche Informationen identifiziert werden kann, was zurückgegeben werden soll (".getCurrentController",".getActiveSheet",".getDataArray",".getCurrentValue" etc).
Z.B. ".getByName" dagegen impliziert vom Namen her ja schon, dass hier festgelegt werden muss, nach welchem Kriterium ein Objekt zurückgegeben werden soll.
Ein anderes Beispiel wäre wiederum ein ResultSet, das die Methode ".getString" zur Verfügung stellt. Hört sich erstmal an, als könnte man von einem eindeutigen String ausgehen (wie zum Beispiel bei einer Calc-Zelle), aber bei genauerem Überlegen ist klar, dass ein ResultSet mehrere Spalten beinhaltet (bzw. beinhalten kann) und natürlich wissen muss, welchen Inhalt es zurückliefern soll - nämlich per Spaltenindex als Parameter.

Du siehst, pauschale Aussagen sind nicht möglich. Aber wenn man sich überlegt, mit welcher Methode man gerade arbeiten will und ob es mehrere potenzielle Rückgabewerte gibt, kann man leicht entscheiden, ob man einen Parameter braucht oder nicht.
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Ungereimtheit bei getDataArray

Beitrag von balu »

Hallo Winfried und DPunch.

Ich bedanke mich recht Herzlich für eure antworten. War mal wieder sehr informativ und lehrreich.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten